登录
小游戏可以通过官方提供的登录能力方便地获取用户身份标识,快速建立小游戏内的用户体系。
登录流程时序

说明:
- 调用 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次 |