creator版本: 3.8.0
语言: TypeScript
环境: Mac
微信小游戏在微信平台中运行,第一步操作就是登录。在登录之后才能:
在微信平台中,登录的流程图大致如下:
步骤:
wx.login
接口获取 临时登录凭证code(时效5分钟)auto.checkSessionKey
接口验证 session_key 的合法性session_key
进行数据合法性验证或其他处理后,将数据返回给客户端微信小程序的唯一的ID和唯一的密钥,在微信后台处,通过开发管理 -> 开发设置可获取
出于安全考虑:appId和AppSecret 都需要保密
该接口主要被服务器进行登录凭证校验。 返回的参数:
参数 | 类型 | 说明 |
---|---|---|
openId | string | 用户唯一标识符,业务逻辑请求需要 |
session_key | string | 密钥,服务器用于验证数据的合法性,客户端不需要 |
unionid | string | 用户在开放平台的唯一标识符 |
errcode | number | 错误码,0表示成功 |
errmsg | string | 错误信息 |
errcode的类型主要有:
数值 | 说明 |
---|---|
-1 | 系统繁忙,此时请开发者稍候再试 |
0 | 请求成功 |
40029 | code无效 |
45011 | 频率限制,每个用户每分钟100次 |
40226 | 高风险等级用户,小程序登录拦截 。风险等级详见用户安全解方案 |
session_key字段主要在服务器中使用,以wx.getUserInfo为例,接口返回的字段:
客户端可以将 rawData 和 signature 字段发送给服务器,然后服务器通过相同的算法加密,获取新的 signature, 两者比对,就可以检验数据的合法性了。
因能力限制,最后粘贴下客户端的逻辑实现相关:
public clickLogin(callBack?: any) {const wx = window['wx'];let object: any = {timeout: 10000, // 超时时间毫秒success: (res) => {// 用户登录凭证,有效期5分钟let code = de; console.log("登录获取凭证成功, code:", code);if (callBack) {callBack(code);}},fail: (err) => {console.log(`wx.login 失败, errorCode:${}, msg:${Msg}`)},};wx.login(object);
}
更多内容参考:微信小游戏-登录态管理
最后,祝大家学习生活愉快!
本文发布于:2024-02-01 01:36:37,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170672259732900.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |