# 小游戏登录态管理
# 登录流程
小游戏登录流程如下:
- 小游戏客户端通过 tap.login() 获取临时登录凭证 code
- 小游戏客户端将 code 发送到开发者服务器
- 开发者服务器以 code 作为参数,调用服务端 API code2Session 换取用户唯一标识 openid、unionid 和会话密钥 session_key
- 开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份
- 将自定义登录态返回给小游戏客户端
- 小游戏客户端可通过 tap.checkSession() 检测当前用户登录态是否有效
# 登录态维护
小游戏登录态具有时效性,开发者在小游戏客户端使用登录态时,可先调用 tap.checkSession() 检测当前用户登录态是否有效。登录态过期后,开发者可以调用 tap.login() 重新获取登录态。
session_key 具有唯一性,在使用小游戏时,同一用户在同一时刻仅有一个有效的 session_key。
通过 tap.login() 接口获得的用户登录态拥有一定的时效性。用户越久未使用小游戏,用户登录态越有可能过期。反之如果用户一直在使用小游戏,则用户登录态一直保持有效。具体时效逻辑由应用维护,对开发者透明。
# 安全说明
为了保证用户数据和业务安全,开发者服务器在使用 session_key 时需注意以下几点:
- session_key 是对用户数据进行加密签名的密钥,使用 code 换取的 session_key 需要保存在服务器中,不应该传递给小游戏客户端
- 开发者应该通过自定义登录态管理用户状态,不应该直接使用 session_key 作为登录态管理
- 开发者通过 session_key 加解密数据时,需要对数据的有效性进行校验,防止篡改