# 小游戏登录指南
# 名词解释
登录流程中涉及的相关名词解释如下:
名词 | 解释 | 获取方式 | 有效期 |
---|---|---|---|
app_id | 小游戏唯一标识 | 从快手海外开发者平台获取 | 不变 |
app_secret | 小游戏密钥 | 从快手海外开发者平台获取 | 不变 |
code | 临时登录凭证 | 小游戏前端调用 ks.login 获取 | 5分钟 |
open_id | 用户唯一身份标识 | 小游戏服务器从快手服务器获取 | 单个小游戏内不变 |
session_key | 会话密钥 | 小游戏服务器从快手服务器获取,用于后续接口签名和校验数据完整性使用 | 由快手服务器维护,活跃用户自动延长有效期 |
自定义登录态 | 小游戏登录态,区别于快手登录态 | 小游戏服务器自己定义生成,与 open_id、session_key 关联 |
# 登陆流程
登陆流程时序图如下:
# 说明
- 小游戏服务器应妥善保管 session_key,勿将该字段下发至小游戏前端,避免会话密钥泄露,保证数据安全;此外小游戏前端调用 ks.login 接口会导致 session_key 被刷新,存储在小游戏服务端的旧 session_key 失效,所以前端应谨慎判断调用 ks.login 的时机;
- 每个快手用户在单个小游戏内 open_id 始终不变,小游戏服务器可据此生成自定义登录态,用于后续业务中前后端交互时识别用户身份;
- 临时登录凭证 code 仅单次有效,且有有效期限制,小游戏服务器收到后应及时调用登录凭证校验接口 code2session 换取 open_id 和 session_key 。
- ks.login 的调用时机:在游戏本地存在自定义登录态时,可以直接使用自定义登录态发起业务请求,当自定义登录态失效时才需要重新调用 ks.login ,调用流程伪代码如下:
if (自定义登录态有效){
发起业务请求 // 携带自定义登录态
} else {
// 先通过登录流程获取自定义登录态,再发起业务请求
ks.login({
success : function(res) {
通过游戏服务器获取自定义登录态 // 携带 res.code
发起业务请求 // 携带自定义登录态
},
fail : function() {
//错误处理
}
});
}
- ks.checkSession 的调用时机:游戏需要使用session_key时,可以调用 ks.checkSession 检查快手小游戏服务器侧登录态是否过期,如果过期需要调用ks.login重新获取用户登陆态,调用流程伪代码如下:
ks.checkSession({
success () {
//session_key 未过期,并且在本生命周期一直有效
},
fail () {
// session_key 已经失效,需要重新执行登录流程
ks.login() //重新登录
}
})
← 游戏分包加载 UnionID机制说明 →