微信小程序后端实现授权登录

一.登录登录流程时序

微信小程序后端实现授权登录

说明:

调用

wx.login()获取临时登录凭证code,并回传到开发者服务器。

调用code2Session接口,换取用户唯一标识 OpenID和会话密钥 session_key。

之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。

注意:

会话密钥session_key是对用户数据进行加密签名的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。

临时登录凭证 code 只能使用一次

总结:
小程序端执行wx.login后在回调函数中就能拿到上图的code,然后把这个code传给我们后端程序,后端拿到这个这个code后,可以请求code2Session接口拿到用的openid和session_key,openid是用户在微信中唯一标识,我们就可以把这个两个值(val)存起来,然后返回一个键(key)给小程序端,下次小程序请求我们后端的时候,带上这个key,我们就能找到这个val,就可以,这样就把登入做好了。

wx.login

调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话
密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。[/code]

参数

属性 类型 默认值 必填 说明 最低版本
timeout   number         超时时间,单位ms   1.9.90  
success   function         接口调用成功的回调函数      
fail   function         接口调用失败的回调函数      
complete   function         接口调用结束的回调函数(调用成功、失败都会执行)      

object.success 回调函数

参数

属性 类型 说明
code   string   用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用 code2Session,使用 code 换取 openid 和 session_key 等信息  

code2Session

本接口应在服务器端调用,详细说明参见服务端API

登录凭证校验。通过wx.login()接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。更多使用方法详见小程序登录

请求地址

GET https://api.weixin.qq.com/sns/jscode2sessionappid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

请求参数

属性 类型 默认值 必填 说明
appid   string         小程序 appId  
secret   string         小程序 appSecret  
js_code   string         登录时获取的 code  
grant_type   string         授权类型,此处只需填写 authorization_code  

返回值

Object

返回的 JSON 数据包

属性 类型 说明
openid   string   用户唯一标识  
session_key   string   会话密钥  
unionid   string   用户在开放平台的唯一标识符,在满足 UnionID 下发条件的情况下会返回,详见 UnionID 机制说明  
errcode   number   错误码  
errmsg   string   错误信息  

errcode 的合法值

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6e855866c53a5ed8f9a6d1f6fff37928.html