Menu

4.4. 维持登录状态

维持登录状态

这一节我们将学习如何维持小程序登录的状态,已经能够正确登录,调用登录接口获取 JWT,并保存在小程序缓存中。但是出于安全考虑 JWT 的有效时间一般不会太长,默认的时间为 1 小时,过期之后则无法请求需要身份认证的接口。

既然用户已经登录成功,说明小程序 openid 已经绑定了 Larabbs 用户,直接调用 api.login 即可重新获取一个 JWT,所以你可能第一时间会想到,如果发现 JWT 过期,则直接重新登录,调用 api.login

但是重新登录会产生以下流程:

  1. 小程序重新调用微信服务器 wepy.login 获取 code,微信服务器使现有 session_key 失效,重新生成 session_key;
  2. 小程序调用 LaraBBS 服务器登录接口,提交 code;
  3. LaraBBS 服务器去微信服务器换取 openidsession_key,根据 openid 找到用户,保存 session_key
  4. 返回新的 JWT。

整个过程中产生了几次网络请求,因为调用了 wepy.login(),导致 ses...

本文章首发在 Laravel China 社区

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
讨论数量: 15

assassinlex
用户注销清除缓存未生效,请问这个有人碰到这个问题吗?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
TYu
TYu
关于将 `access_token_expired_at `设置为 0 不刷新 `token`的问题?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
Fykex
已经过期的 Token 为什么还可以用来刷新 Token?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
JeffLi
删除 token 后的返回数据 解析不到 statusCode 这个字段?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
jinpeng0314
小程序内调用 user 获取个人资料报 401?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
张汉为
无法退出登陆?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
vanman
退出登录提示 Call to a member function revoke () on null
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
zhaomengqiao
感觉弄完 jwt 再测小程序的接口好不方便
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
tianweiwei
这个是怎么一回事??????
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
finley
请问一下过期时间的问题
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
Everan
多表登录的问题?
1 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
yangshuolll
你这设计思路存在一个很大的 bug
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
yangshuolll
将前后端的 token 过期时间设置为一样的是没有意义的。
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
刻意练习,每日精进。
13
点赞
3305
浏览
15
讨论