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

如果开发者有多个移动应用程序、网站应用程序和公共账户(包括小程序),可以通过 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.code console.log("用户的code:" res.code) openid openid方法如下: wx.request((((((( url: 'https://api.weixin.qq.com/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('用户点击返回授权'); } } } }

扫码免费用

源码支持二开

在线咨询