浅谈PHP(基于TP3.2框架)开发APP接口(个人见解)
本篇文章给大家分享的内容是关于浅谈PHP(基于TP3.2框架)开发APP接口(个人见解),有着一定的参考价值,有需要的朋友可以参考一下
PHP很强大,可以搞各种东西,web开发,小程序,商城,自然也包括APP啦。
由于博主也是准备完成一个APP项目,就把心得写一下,以后也能回味一下,哈哈。
因为我们是写接口嘛,所以安全第一,不能搞出人命是吧。所以就得和前端协商一种接口加密的方法,每个接口都要噢(这个可以叫token加密,也可以叫sign加密,看个人喜欢怎么叫吧)
下面我说下我是怎么加密的吧,我建议接口都是用post传递,所以以下参数都是基于post传递的
1.首先对传递过来的参数进行key字典排序,除去token值(PHP提供了一个ksort函数,默认是标准ASICC码排序,这里有个坑,就是IOS的排序有时会和安卓的不一样,只是个别)
2.拼接排序后的值(PHP提供了一个http_build_query函数)
3.在排序后的字符串后面拼接一个自定义的密钥(这要跟前端好,统一),然后md5加密
4.转换成大写作为token,当做参数。
还是贴一下代码吧
function makeToken($data){ //$data就是$_POST传过来的参数 unset($data['token']); unset($data['auth_key']); //这个下面会说到 ksort($data); $string = http_build_query($data); if(empty($data)){ $string = 'key=CT01aVVsCkSxYdxi55ml'; } else { $string = $string .'&key=CT01aVVsCkSxYdxi55ml'; } $string = md5($string); $result = strtoupper($string); return $result; }
<?phpnamespace Api\Controller;use Think\Controller;/** * 公共控制器 */class CommonController extends Controller { public function _initialize(){ // // //验证token $token = I('token'); $sal = makeToken($_POST); if($sal!=$token){ $result = ajaxR(404,'认证失败'); $this->ajaxReturn($result); } } }
前端生成的token作为参数一并传入,然后再跟你生成的token进行比对,如果错误的话,那token就验证失败,接口就不能访问了。
有些接口是例外,它可能是不需要参数直接请求数据的,所以只需要对自定义的密钥进行md5加密就可以了,就是将key=CT01aVVsCkSxYdxi55ml这一串加密,当然了这一串你喜欢怎么弄都可以,主要是和前端协商好。
在参数排序前,就是在http_build_query之前,需要先把前端传过来的token和auth_key去掉(这个先不说),之后再参与排序,这个也要和前端协商好。
接下来说下auth_key吧,大家都知道session是用来记住web页面的用户登录状态的,而APP也是需要登录用户状态的。这里我使用的一个自己加密的一串用来记住用户登录状态,叫auth_key的参数。
auth_key的生成规则你可以自己定义,在APP端注册登录之后,把这个串存入相应的用户里面,并且将其返回给前端,前端之后的每个访问都带上这个auth_key这个参数,而你就可以通过这个参数来查询这个用户的相关信息。
当然,你也可以对这个auth_key进行一个时间的限制,例如给个7天的期限,在项目的每个方法都调用一下,看看是否过期了,过期了就给前端返回一个登陆状态失效,退出登录。
其实开发APP的接口不难,主要和前端协商好,就很容易办。一般我们返回的都是json格式,如下
{ "code": 200, "message": "获取信息成功", "data": { "lng": "113.743393", "lat": "23.015902", }}
定义好返回的状态码和信息还有数据,这是必不可少的。
PHP很强大,可以搞各种东西,web开发,小程序,商城,自然也包括APP啦。
由于博主也是准备完成一个APP项目,就把心得写一下,以后也能回味一下,哈哈。
因为我们是写接口嘛,所以安全第一,不能搞出人命是吧。所以就得和前端协商一种接口加密的方法,每个接口都要噢(这个可以叫token加密,也可以叫sign加密,看个人喜欢怎么叫吧)
下面我说下我是怎么加密的吧,我建议接口都是用post传递,所以以下参数都是基于post传递的
1.首先对传递过来的参数进行key字典排序,除去token值(PHP提供了一个ksort函数,默认是标准ASICC码排序,这里有个坑,就是IOS的排序有时会和安卓的不一样,只是个别)
2.拼接排序后的值(PHP提供了一个http_build_query函数)
3.在排序后的字符串后面拼接一个自定义的密钥(这要跟前端好,统一),然后md5加密
4.转换成大写作为token,当做参数。
还是贴一下代码吧
function makeToken($data){ //$data就是$_POST传过来的参数 unset($data['token']); unset($data['auth_key']); //这个下面会说到 ksort($data); $string = http_build_query($data); if(empty($data)){ $string = 'key=CT01aVVsCkSxYdxi55ml'; } else { $string = $string .'&key=CT01aVVsCkSxYdxi55ml'; } $string = md5($string); $result = strtoupper($string); return $result; }
<?phpnamespace Api\Controller;use Think\Controller;/** * 公共控制器 */class CommonController extends Controller { public function _initialize(){ // // //验证token $token = I('token'); $sal = makeToken($_POST); if($sal!=$token){ $result = ajaxR(404,'认证失败'); $this->ajaxReturn($result); } } }
前端生成的token作为参数一并传入,然后再跟你生成的token进行比对,如果错误的话,那token就验证失败,接口就不能访问了。
有些接口是例外,它可能是不需要参数直接请求数据的,所以只需要对自定义的密钥进行md5加密就可以了,就是将key=CT01aVVsCkSxYdxi55ml这一串加密,当然了这一串你喜欢怎么弄都可以,主要是和前端协商好。
在参数排序前,就是在http_build_query之前,需要先把前端传过来的token和auth_key去掉(这个先不说),之后再参与排序,这个也要和前端协商好。
接下来说下auth_key吧,大家都知道session是用来记住web页面的用户登录状态的,而APP也是需要登录用户状态的。这里我使用的一个自己加密的一串用来记住用户登录状态,叫auth_key的参数。
auth_key的生成规则你可以自己定义,在APP端注册登录之后,把这个串存入相应的用户里面,并且将其返回给前端,前端之后的每个访问都带上这个auth_key这个参数,而你就可以通过这个参数来查询这个用户的相关信息。
当然,你也可以对这个auth_key进行一个时间的限制,例如给个7天的期限,在项目的每个方法都调用一下,看看是否过期了,过期了就给前端返回一个登陆状态失效,退出登录。
其实开发APP的接口不难,主要和前端协商好,就很容易办。一般我们返回的都是json格式,如下
{ "code": 200, "message": "获取信息成功", "data": { "lng": "113.743393", "lat": "23.015902", }}
定义好返回的状态码和信息还有数据,这是必不可少的。
相关推荐:
Atas ialah kandungan terperinci 浅谈PHP(基于TP3.2框架)开发APP接口(个人见解). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
