WebAPI 微信小程序的授权登录以及实现

2023-10-20 19:22:10 浏览数 (24)

这个星期最开始 ,老大扔了2个任务过来,这个是其中之一。下面直接说步骤:

1.  查阅微信开发文档

  https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html

我将两个重要的地方列出来

a  登录流程时序图,及说明

登录流程时序

说明:

  1. 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
  2. 调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key

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

注意:

  1. 会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥
  2. 临时登录凭证 code 只能使用一次

b. auth.code2Session 的文档说明

auth.code2Session

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

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

请求地址

代码语言:javascript复制
GET https://api.weixin.qq.com/sns/jscode2session?appid=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 的合法值

说明

最低版本

-1

系统繁忙,此时请开发者稍候再试

0

请求成功

40029

code 无效

45011

频率限制,每个用户每分钟100次

1 人点赞