code2Session收藏我的收藏
收藏
我的收藏
为了保障应用的数据安全,只能在开发者服务器使用 AppSecret;开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。如果小程序存在泄露 AppSecret 或会话密钥的问题,字节小程序平台将有可能下架该小程序,并暂停该小程序相关服务。
通过login接口获取到登录凭证后,开发者可以通过服务器发送请求的方式获取 session_key 和 openId。
- Tip:登录凭证 code,anonymous_code 只能使用一次,非匿名需要 code,非匿名下的 anonymous_code 用于数据同步,匿名需要 anonymous_code。
请求地址
POST https://developer.toutiao.com/api/apps/v2/jscode2session
请求参数
属性 | 数据类型 | 说明 |
---|---|---|
appid | string | 小程序 ID |
secret | string | 小程序的 APP Secret,可以在开发者后台获取 |
code | string | login 接口返回的登录凭证 |
anonymous_code | string | login 接口返回的匿名登录凭证 |
- Tip:code 和 anonymous_code 至少要有一个。
返回值
返回值为 JSON 形式,其中包括如下字段:
属性 | 数据类型 | 说明 |
---|---|---|
session_key | string | 会话密钥,如果请求时有 code 参数才会返回 |
openid | string | 用户在当前小程序的 ID,如果请求时有 code 参数才会返回 |
anonymous_openid | string | 匿名用户在当前小程序的 ID,如果请求时有 anonymous_code 参数才会返回 |
unionid | string | 用户在小程序平台的唯一标识符,请求时有 code 参数才会返回。如果开发者拥有多个小程序,可通过 unionid 来区分用户的唯一性。 |
- Tip:对于同一个用户,不同的宿主或不同的开发者得到的 unionid 是不同的。
- Tip:session_key 会随着login接口的调用被刷新。可以通过checkSession方法验证当前 session 是否有效,从而避免频繁登录。
- Tip:session_key 会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。
errCode
当服务器端无法正确返回时,会返回如下信息:
属性 | 数据类型 | 说明 |
---|---|---|
err_no | int64 | 错误码 |
err_tips | string | 错误信息 |
具体对应关系为:
错误号 | 描述 |
---|---|
0 | 请求成功 |
-1 | 系统错误 |
40014 | 未传必要参数,请检查 |
40015 | appid 错误 |
40017 | secret 错误 |
40018 | code 错误 |
40019 | acode 错误 |
其它 | 参数为空 |
请求示例
POST 请求 body
{ "appid": "ttabc****", "secret": "d428**************7", "anonymous_code": "", "code": "iOyVA5hc*******" }
返回示例
正确返回
{ "err_no": 0, "err_tips": "success", "data": { "session_key": "hZy6t19VPjFqm********", "openid": "V3WvSshYq9******", "anonymous_openid": "", "unionid": "f7510d9ab***********" } }
错误返回
{ "err_no": 40015, "err_tips": "bad appid", "data": { "session_key": "", "openid": "", "anonymous_openid": "", "unionid": "" } }
匿名 openid 数据迁移
该文档是否有帮助?