上一次(聊一聊数据接口的登陆态校验以及JWT)说到app、小程序的数据接口通常采用token来作登陆信息校验,由于用不了cookie。可是实际应用的时候若是由于某些缘由必需要用cookie该怎么办了?web
说一下个人实际案例吧,我作过的一个小程序,背景是这个项目已经有web端,但愿能有个小程序把web功能复制一遍,可是后端这边已经交付,没有人再继续维护,因此需求是在不修改后端的基础上把小程序作出来。我看了一下现有的web端,有好有坏,好的就是web端数据操做都是经过ajax调用接口来完成的,接口都是现成的;可是坏的就是数据接口和web页面在同一个域名下,因为没有跨域问题,因此用户登陆状态的校验用的是cookie。ajax
这就麻烦了,我前面说过了,小程序里面是用不了cookie的。当时就这个问题和客户也作了沟通,获得的答复就是后端已经没人再搞了,数据库也不开放给你,你本身想办法。数据库
不过还好,我但是会PHP的小程序开发者。我这边最终给出的方案是用PHP搭一个中间环境,模拟cookie从原来的后端接口操做数据后再转换成token形式传给小程序使用。小程序
PHP中模拟cookie读取接口须要经过curl的相关配置来实现,基本原理是在PHP服务器端设置一个静态文件存储cookie信息,直接看代码吧segmentfault
$ch=curl_init(); // 一些基本的配置 curl_setopt($ch, CURLOPT_POST, TRUE); ... // 模拟cookie的相关配置 $cookie_file='cookie.txt'; // 服务器上存储cookie的文件 if(file_exists($cookie_file))curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); // 读取接口 $response=curl_exec($ch); curl_close($ch);