小程序调用后端接口 使用的token问题
先开发了app,后面增了小程序。
app 是禁止多端同时登录的,否则会导致一端下线。目前小程序和app都是通过调用api接口获取后台数据。
小程序uid+token来验证用户(参数中的token跟数据库中的token进行比对),我把uid,token保存在storage中,这个token跟app的token是同一个。
那么就会出现一个问题,app那边互踢,导致token更新,然而保持在storage中的token不是最新的,这时小程序请求接口时就会出现验证失败。
小程序的token要怎么弄,才能避免app互踢时token更新 带来的影响。
目前解决方法是:再造一个字段保存小程序的token,
不知道还有没有更好的方法?
小程序调用后端api 的Token如何设置
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
阿里嘎多学长 2025-10-21 09:32关注阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
解决方案
由于小程序和APP都需要调用后端API接口,且需要验证token,为了解决多端同时登录的问题,我们可以采用以下方案:
- 统一token管理:在后端使用一个统一的token管理系统,例如Redis或Memcached,存储每个用户的token信息。
- token类型:使用两种token类型,分别用于小程序和APP:
- 小程序token:使用一个短期的token(例如1小时),每次小程序登录时生成新的token。
- APP token:使用一个长期的token(例如1周),每次APP登录时更新token。
- token校验:在后端API接口中,校验token的有效性和类型,根据token类型进行相应处理。
- token更新:在小程序和APP中,需要定期更新token,以确保token的有效性。
核心代码
// 后端API接口 function checkToken($token) { // 校验token的有效性和类型 if ($token['type'] == 'small_program') { // 小程序token,短期token $tokenExpire = 3600; // 1小时 } elseif ($token['type'] == 'app') { // APP token,长期token $tokenExpire = 604800; // 1周 } // 验证token的有效性 if (time() > $token['expire']) { return false; } return true; } // 小程序端 function updateToken() { // 生成新的token $token = generateToken(); // 更新token updateTokenToServer($token); } // APP端 function updateToken() { // 更新token updateTokenToServer($token); }注意:上述代码仅为示例,具体实现需要根据实际需求进行调整。
解决 无用评论 打赏 举报