当前位置:   article > 正文

微信小程序的登录流程_微信小程序登录流程前端

微信小程序登录流程前端

1.使用完整服务也就是用户登录并且允许获取头像和昵称的时候,微信小程序通过方法wx.login获取到code(5 分钟内有效),携带code、appid和appSecret发送请求到服务器端;

2.服务器端利用appId、appSecret 和code调用相对应的接口(auth.code2Session)发送请求到微信官方服务器进行校验,获取用户在该小程序的唯一标识openid和会话密钥session_key。(如果当前小程序已绑定到微信开放平台帐号,还返回用户在微信开放平台帐号下的唯一标识UnionID),将这些数据存储在服务器;

3.之后,服务器端响应给前端一个由jwt生成的token,微信小程序(调用wx.setStorage)异步存储或者(wx.setStorageSync)同步存储token, 异步就是不管数据保存成功了没有,程序都会继续往下执行,可以设置数据保存成功的回调函数;同步是等保存成功了,才会执行下面的代码;使用异步,性能会更好;而使用同步,数据会更安全。

4.之后,前端判断用户是否授权获取个人信息(wx.getSettings),如果已授权,则获取用户个人信息(wx.getUserInfo);这个时候应该获取用户的手机号,可以是触发button组件的点击事件,设置这个button的open-type为getPhoneNumber,弹出一个弹窗给用户,用户点击授权按钮之后触发了bindgetphonenumber事件执行事件处理函数,会接受一个事件对象,事件对象里有5分钟有效期的code(e.detail.code)一串字符串表明用户是否已允许获取手机号,判断这串字符串然后携带code和token或者session_key发送请求到服务器端,服务器端调用接口phonenumber.getPhoneNumber消费code发送请求到微信官方服务器获取该用户的手机号,之后返回给前端渲染。(bindgetphonenumber事件处理函数返回的 code 与 wx.login 返回的 code 作用是不一样的,不能混用.)

5.前端每次发送请求都在请求头中携带token,服务器端判断有无token,有token就调用jwt.verify方法验证,验证成功就获取相对应的数据,验证失败或者没有token就响应状态码401(请求授权失败)

6.如果前端拿到的状态码为401,就清除token的存储信息并且重新登录

相关文章:

Openid是什么,与unionid的区别

http 常见的响应状态码

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/890840
推荐阅读
相关标签
  

闽ICP备14008679号