以前也写过微信小程序登陆的相关文章:html
也能够经过官方的这张时序图了解小程序的登陆流程: 小程序
从流程图上能够看出微信小程序登陆须要先调用
wx.login()
获取 临时登陆凭证code
,并回传到开发者服务器。而后在服务器端调用 auth.code2Session 接口,换取 用户惟一标识openid
和 会话密钥session_key
等信息。以后开发者服务器能够根据用户标识来生成自定义登陆态,用于后续业务逻辑中先后端交互时识别用户身份。后端
wx.login()
是在微信小程序端登陆的时候调用,而常见的登陆方式有如下几种:微信小程序
我这里的实现是经过 点击登陆按钮 实现登陆。在《小书架》项目中有两处能够进行登陆。api
wx.login({ success: function(loginRes) { if (loginRes.code) { let userStorageInfo = wx.getStorageSync('userInfo'); // 请求服务端的登陆接口 wx.request({ url: api.loginUrl, method: 'POST', data: { account: loginRes.code, // 临时登陆凭证 type: 100, // 100 表示小程序用户 userInfo: JSON.stringify(userStorageInfo) }, success: function(res) { console.log(res); if (res.statusCode == 200) { console.log('-----获得 Token---------'); wx.setStorageSync('loginToken', res.data.token); } else { console.log("Error:" + res.errmsg); } }, fail: function(error) { // 调用服务端登陆接口失败 } }); } else { // 获取 code 失败 } }, fail: function(error) { // 调用 wx.login 接口失败 } });
当微信小程序端发送code
登陆凭证给服务端以后,服务端调用微信提供 的接口,获取openid
等数据。服务器
在服务器开发中有些接口API
是须要登陆后才能使用,好比:收藏、评论等。而如何判断用户是否登陆,在移动端常见的手段是经过 token
来验证登陆的时效性。也就是在用户登陆以后,生成一个具备有效期的token
,返回给客户端使用,token
超过了有效期就说明用户的登陆状态失效了,须要从新登陆。微信
ps: token
的介绍能够查看我以前的相关文章。网络
咨询请加微信:轻撩便可。
session
原文出处:https://www.cnblogs.com/gdragon/p/11946441.html函数