【Uniapp】小程序携带Token请求接口+无感知登录方案2.0,Uniapp小程序,Token携带接口请求与无感知登录方案2.0,Uniapp小程序,Token携带接口请求与无感知登录方案2.0实践

马肤

温馨提示:这篇文章已超过429天没有更新,请注意相关的内容是否还可用!

摘要:Uniapp小程序推出了一种新的接口请求和登录方案,即携带Token请求接口和无感知登录方案2.0。该方案允许用户在访问Uniapp小程序时,无需再次登录验证,通过携带Token进行接口请求,实现无缝的用户体验。这种方案简化了用户的操作流程,提高了用户体验的便捷性和流畅性。

Uniapp小程序通过携带Token的请求接口与无感知登录方案2.0,实现用户便捷登录和高效数据传输,小程序客户端保存用户Token,并在每次请求时自动携带,确保数据安全,无感知登录方案则通过后台自动验证用户身份,实现用户无感知自动登录,提升用户体验,该方案不仅提高了小程序的安全性和用户便利性,而且优化了用户操作流程。

一、关于Token请求接口与无感知登录方案的问题

在改进过程中,我们发现了以下问题:

【Uniapp】小程序携带Token请求接口+无感知登录方案2.0,Uniapp小程序,Token携带接口请求与无感知登录方案2.0,Uniapp小程序,Token携带接口请求与无感知登录方案2.0实践 第1张

1、当token到期时,应提示token过期而非返回空数据。

2、token过期后,需重新启动小程序才能获取新token,影响用户体验。

3、获取token后,原接口不继续请求,导致页面空白,数据需刷新才能显示。

问题及解决方案演示

【审核中】

目录

吐槽

【Uniapp】小程序携带Token请求接口+无感知登录方案2.0,Uniapp小程序,Token携带接口请求与无感知登录方案2.0,Uniapp小程序,Token携带接口请求与无感知登录方案2.0实践 第2张

token 是什么?

设计思路

操作流程

+ 后端代码(以Thinkphp5.0.24为案例)

+ 前端小程序封装代码

+ 演示流程

【Uniapp】小程序携带Token请求接口+无感知登录方案2.0,Uniapp小程序,Token携带接口请求与无感知登录方案2.0,Uniapp小程序,Token携带接口请求与无感知登录方案2.0实践 第3张

- 不存在本地缓存、不存在redis记录演示

- 本地缓存失效演示

- 服务器端redis记录失效演示

如何进行token鉴权

thinkphp5 redis补充

2.0改进方案

【Uniapp】小程序携带Token请求接口+无感知登录方案2.0,Uniapp小程序,Token携带接口请求与无感知登录方案2.0,Uniapp小程序,Token携带接口请求与无感知登录方案2.0实践 第4张

吐槽:在之前的开发中,我们未采用微信小程序提供的session作为token鉴权,对于使用"access_token作为token来请求验证接口、checkSession用来检测access_token有无过期"的做法,我深感担忧,这反映出技术社区的质量下降,误导开发者,为什么不能使用access_token作为token?官方回答指出:access_token只是用来调用微信提供的api服务的,其有效期仅两个小时,无法满足小程序长期保持用户登录状态的需求,checkSession是用来检测session_key的,而非access_token,我们需要寻找更合适的解决方案。

设计思路与操作流程

设计思路:通过小程序客户端发起wx.login()获取临时登录凭证code,并传至开发者服务器,利用微信提供的auth.code2Session接口,换取用户唯一标识openid和会话密钥session_key,以session_key为名,将openid为值存入redis,设置有效期为48小时,当服务端token失效或客户端checkSession失效或本地数据缓存失效时,重新登录,该设计保证了小程序端的token都是最新的,但仍有不足,即无法及时作废在服务器存储的原先数据,需等redis过期后处理,详细操作流程包括后端代码(以Thinkphp5.0.24为案例)、登录接口方法建议、演示流程等,建议查看原文档。


0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码