小程序登录
小程序可以通过官方提供的登录能力方便地获取用户身份标识,快速建立小程序内的用户体系。
登录流程时序
说明:
- 调用 bl.login() 获取 临时登录凭证code ,并回传到开发者服务器。
- 调用
code2Session
接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。
之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。
注意:
- 会话密钥
session_key
是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。 - 临时登录凭证 code 只能使用一次
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 |
sessionKey | string | 会话秘钥,小程序开发者业务方后台需保存,会参与用户相关敏感信息的解密 |
unionid | string | 用户在开放平台的唯一标识符,在满足 UnionID 下发条件的情况下会返回。 |
errcode 的合法值
值 | 说明 |
---|---|
-1 | 系统繁忙,此时请开发者稍候再试 |
0 | 请求成功 |
40029 | code 无效 |
45011 | 频率限制,每个用户每分钟100次 |