失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 微信小程序云开发用户身份登录_微信小程序开发用户授权登录(下)

微信小程序云开发用户身份登录_微信小程序开发用户授权登录(下)

时间:2021-06-18 21:21:18

相关推荐

微信小程序云开发用户身份登录_微信小程序开发用户授权登录(下)

如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。所以我们有时候需要获取这个UnionID

小程序全套学习视频:从入门到项目

微信小程序从零基础到电商项目实战-学习视频教程-腾讯课堂​

登录流程

流程解析

1. 客户端获得code,并将code传给第三方服务端(后台)

微信小程序端调用wx.login,获取登录凭证(code),并调用接口,将code发送到第三方客户端

2. 第三方服务端用code换session_key和openid

小程序端将code传给第三方服务器端,第三方服务器端调用接口,用code换取session_key和 openid (后台服务器带着前端发送的code去访问微信后台的接口)

3. 第三方服务端生成新的session_key和 openid

第三方服务器端拿到请求回来的session_key和openid,发送到客户端

4. 正常请求

小程序每次请求都将openid 放在请求头里,第三方服务端解析判断合法性,并进行正常的逻辑处理

小程序 wx.checkSession 校验登陆态

success :接口调用成功,session_key未过期;fail :接口调用失败,session_key已过期;

代码演示

代码分两种演示:第一种自己启动了本地的后台 访问微信公共平台 另外一个会给大家提供一个模拟演示的接口 获取session_key openid

登录页.wxml

可以只是一个简单的按钮 点击 button去登录

登录页.js

这样就登录完成了。

再次进入页面 自动登录

如果没有后台转换的接口 又想要模拟登录 后台返回的openid和session_key 代码如下:

bindGetUserInfo: function (e) {if (e.detail.userInfo) {var that = this;//点击按钮就是授权了 可以获取用户头像 昵称 console.log(e.detail.userInfo);wx.login({success: res => {// 获取到用户的 code 之后:res.codeconsole.log("用户的code:" + res.code)// 可以传给后台,再经过解析获取用户的 openid// 或者可以直接使用微信的提供的接口直接获取 openid ,方法如下:wx.request({url: 'https://api./sns/jscode2session', //接口地址data: {appid: '注册的appid',secret: '生成的sercret',js_code: res.code,grant_type: 'authorization_code'},header: {'content-type': 'application/json' //默认值},success: function (res) {console.log(res.data)OPEN_ID = res.data.openid;//获取到的openid SESSION_KEY = res.data.session_key;//获取到session_key //获取数据后 把登录的信息 存储在本地 存储--再次进入判断是否有存储 有直接请求login 没有引导授权//如果返回成功,则将OPEN_ID和SESSION_KEY提交请求给服务器wx.request({url: 'xxxx/login.jsp',data: {open_id: OPEN_ID,session_key: SESSION_KEY,gender: GENDER},header: {'content-type': 'application/json' //默认值},method: 'GET'})}});}});that.setData({isHide: false,});} else {//用户按了拒绝按钮wx.showModal({title: '警告',content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!',showCancel: false,confirmText: '返回授权',success: function (res) {// 用户没有授权成功,不需要改变 isHide 的值if (res.confirm) {console.log('用户点击了“返回授权”');}}});}}

如果觉得《微信小程序云开发用户身份登录_微信小程序开发用户授权登录(下)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。