登录
小游戏可以通过官方提供的登录能力方便地获取用户身份标识,快速建立小游戏内的用户体系。
登录流程时序
说明:
- 调用 bl.login() 获取 临时登录凭证code ,并回传到开发者服务器。
- 调用
code2Session
接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。
之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。
注意:
- 会话密钥
session_key
是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小游戏,也不应该对外提供这个密钥。 - 临时登录凭证 code 只能使用一次
vAppId
参数非必填,虚拟小游戏id,如果没有虚拟小游戏不用传,但需与 bl.login() 一致,即登录接口 bl.login() 传虚拟小游戏id,code2Session
登录凭证校验也需要传虚拟小游戏id,反之同理
code2Session
登录凭证校验。通过 bl.login() 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。
接口地址
GET https://miniapp.bilibili.com/api/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
参数说明
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
appid | string | 是 | 小游戏 appid | |
vAppId | string | 否 | 虚拟小游戏id,如果没有虚拟小游戏不用传 | |
secret | string | 是 | 主小游戏 appSecret | |
js_code | string | 是 | 登录时获取的 code | |
grant_type | string | 是 | 授权类型,此处只需填写 authorization_code |
返回参数
属性 | 类型 | 说明 |
---|---|---|
openid | string | B站提供的用户身份标识,小游戏内部唯一,同一个用户在不同的小游戏之间会有不同的openid |
session_key | string | 会话秘钥,小游戏开发者业务方后台需保存,会参与用户相关敏感信息的解密 |
errcode 的合法值
值 | 说明 |
---|---|
-1 | 系统繁忙,此时请开发者稍候再试 |
0 | 请求成功 |
40029 | code 无效 |
45011 | 频率限制,每个用户每分钟100次 |