4.4. 维持登录状态

本教程最新版为 2.1,当前版本已放弃维护,请阅读最新版本!

维持登录状态

这一节我们将学习如何维持小程序登录的状态,已经能够正确登录,调用登录接口获取 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...

本文章首发在 LearnKu.com 网站上。

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

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
贡献者:2
讨论数量: 26

Jennie
多表登录的问题?
2 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
heibai_2018
维持登陆状态,catch 无法调用 login
1 个点赞 | 3 个回复 | 分享 | 课程版本 2.0
Fykex
已经过期的 Token 为什么还可以用来刷新 Token?
1 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
教程中,『退出登录』逻辑不够严谨问题
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
assassinlex
用户注销清除缓存未生效,请问这个有人碰到这个问题吗?
1 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
vanman
退出登录提示 Call to a member function revoke () on null
0 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
yangshuolll
将前后端的 token 过期时间设置为一样的是没有意义的。
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
这个是怎么一回事??????
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
张汉为
无法退出登陆?
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
d1270469522
2.0 版本出现的问题
0 个点赞 | 3 个回复 | 问答 | 课程版本 2.0
xingxiaoli
怎么切换用户进行测试呢?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
TYu
关于将 `access_token_expired_at `设置为 0 不刷新 `token`的问题?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
yangshuolll
你这设计思路存在一个很大的 bug
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
finley
请问一下过期时间的问题
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
佩亚诺余项
小程序内调用 user 获取个人资料报 401?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
删除 token 后的返回数据 解析不到 statusCode 这个字段?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
beatles
刷新接口会出现并发问题 ?
0 个点赞 | 1 个回复 | 分享 | 课程版本 5.5
TigerLin
token 刷新的一个疑问
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
zhaomengqiao
感觉弄完 jwt 再测小程序的接口好不方便
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Some_power
关于刷新 token 报错500问题
0 个点赞 | 0 个回复 | 问答 | 课程版本 2.0
道生一
Non-static method Redis::hSet() cannot be called statically
0 个点赞 | 0 个回复 | 分享 | 课程版本 2.0
hanswong
按步骤改完后,运行 NPM run dev 报错?
0 个点赞 | 0 个回复 | 问答 | 课程版本 2.0
TYu