Toss 登录迁移
Toss 登录(userKey) 的迷你应用 用户识别键(hash) 切换为该方式的方法。
按照本文档操作后,可以将当前使用 Toss 登录的用户逐步映射到用户识别键,等所有用户迁移完成后,还可以完全移除对 Toss 登录的依赖。
什么时候使用本指南?
一直以来都在使用 Toss 登录
userKey进行用户识别。今后希望将用户识别键
hash值作为标准识别标识。
核心概念
用户识别键 hash:
getUserKeyForGame()通过调用获取的游戏专用唯一标识符Toss 登录 userKey: 基于现有 Toss 登录的用户标识符
映射: 同一用户的
userKey和hash值按 1:1 关联后的状态
整体迁移流程
在客户端
getUserKeyForGame()通过……获取用户识别键hash值。getIsTossLoginIntegratedService()确认 Toss 登录是否已集成。查询合作方服务器上的映射状态。
如果未映射,
appLogin()会进行 Toss 登录,并且hash值发送到服务器。在服务器端将 Toss 登录
userKey与用户识别键hash值保存到映射表中。之后
hash仅凭值就可以识别用户。所有用户映射完成后,请移除对 Toss 登录的依赖。
需要预先实现的 API
合作方需要将以下两个 API 自行实现。 这些 API 不由 App in Toss 提供,请参考下方示例,在合作方服务器上自行开发。
查询映射状态
POST /api/auth/migration/status请求:
{ hash: string }响应:
{ isMapped: boolean }
创建映射
POST /api/auth/migration/link请求:
{ hash: string; authorizationCode: string; referrer?: string }响应:
{ success: true }
客户端实现步骤
1. 引入 SDK
2. 发放游戏 hash 值
3. 确认 Toss 登录集成情况
详细 API 规范请参考下方 getIsTossLoginIntegratedService 部分。
4. 在合作方服务器上查询映射状态并进行映射
5. 使用用户识别键 hash
现在用户识别可以基于用户识别键 hash值来进行。Toss 登录 userKey 取而代之, getUserKeyForGame() 通过……获取的用户识别键 hash值请在服务器和客户端两端都作为用户识别标识使用。
完整示例代码
确认 Toss 登录集成状态
SDK 函数: getIsTossLoginIntegratedService
getIsTossLoginIntegratedService是 用于确认当前用户是否与 Toss 登录集成的 API。
该函数主要在 从 Toss 登录 → 用户识别键发放的迁移过程中使用。可根据是否为既有 Toss 登录用户,分支处理登录流程或数据迁移。
签名
Promise<boolean>
如果当前服务已与 Toss 登录集成, true,否则 false。
注意事项
该 API 仅适用于使用(或曾使用)Toss 登录功能的迷你应用。
如果在完全未使用 Toss 登录的迷你应用中调用,可能会发生如下异常。
示例:确认 Toss 登录集成状态
下面的示例展示了先确认用户是否为 Toss 登录集成用户,再根据状态执行不同处理的基本流程。
什么时候适合使用?
在基于 Toss 登录的服务中 切换到用户识别键(迁移) 时
区分现有用户和新用户 进行数据迁移/补偿处理时
根据 Toss 登录是否集成 提供不同 UX时
参考说明
getIsTossLoginIntegratedService是迁移辅助 API。请参考下方的认证/登录功能。
Toss 登录