微信小程序不支持Cookie的,所以为了保存用户登录状态就必须换一个方式实现,这里采用jwt的方式,关于jwt简单来说就是第一次登录验证成功后对想要保存的信息进行加密,然后将加密过后的内容返回给前端,前端每次请求的时候都携带上这个token,后端拿到token后对其解密就能获取之前保存的信息了。
整体流程:
这里先看一下小程序官方给的登录流程,这只是最基础的流程,根据设计需要我们还需要添加自己的逻辑进去
下面是具体的流程图,接下来会根据这个流程图具体看看小程序端和后端应该怎么实现。
小程序的具体实现
以index页面为起始页面,当页面进行加载的时候会调用onload函数,所以可以在onload函数中检测storage中是否有jwt
onLoad: function() {
// 获取本地的jwt,如果有则跳转到home页面,否则重新获取jwt
wx.getStorage({
key: 'jwt',
success: function(res) {
wx.switchTab({
url: '../home/home'
})
},
})
},
如果没有找到jwt,这是会调用登录函数从后端获取jwt
//用户登录
let login = function(code) {
wx.request({
url: login_url,
method: 'post',
data: {
&