当前位置: 首页 > 后端技术 > PHP

接下来说说数据接口的登录状态校验,cookies必须要干什么

时间:2023-03-30 01:43:59 PHP

上次(说说数据接口的登录状态校验和JWT)说到app和小程序的数据接口,token一般作为登录信息校验,因为没有用到cookies。但是在实际应用中如果因为某些原因必须使用cookie怎么办?案例说说我的真实案例吧。我做了一个小程序。背景是这个项目已经有了web端。希望有一个小程序可以复制web功能,但是后端已经交付,没有人继续。维护,所以要求是做小程序不修改后台。看了一下现有的web端,有好有坏,好的是web端的数据操作都是通过ajax调用接口完成的,接口都是现成的;但不好的是数据接口和网页都在同一个域名下,由于不存在跨域问题,所以使用cookie来验证用户的登录状态。这很麻烦。正如我之前所说,小程序中不能使用cookie。当时我也和客户就这个问题进行过沟通,得到的答复是后端没有人在做,数据库也不对你开放,你得想办法。解决方案还可以,但是我是一个懂PHP的小程序开发者。我这里给出的最终解决方案是用PHP搭建一个中间环境,从原来的后端接口模拟cookies操作数据,然后转换成token形式传递给小程序使用。PHP中的模拟cookie读取接口需要通过curl的相关配置来实现。基本原理是在PHP服务器端设置一个静态文件来存放cookie信息。看看代码。$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);