Toss 登录
服务介绍和控制台设置方法是 Toss 登录介绍文档请参考。
基本信息
Base URL
https://apps-in-toss-api.toss.im
服务器认证
mTLS(客户端证书)
Content-Type
application/json
1. 获取授权码
SDK 函数: appLogin
appLogin使用 Toss App 的认证流程执行登录,登录成功后返回授权码(authorizationCode)作为返回值。
首次进行 Toss 登录时 appLogin 调用该函数后会打开 Toss 登录窗口,并显示在 Apps in Toss 控制台中注册的条款同意页面。用户同意必需条款后会返回授权码。
已进行过 Toss 登录时 appLogin 调用该函数后无需额外登录窗口即可直接返回授权码。
签名
返回值
authorizationCode string
这是在用户认证完成后发放的授权码。将其传到服务器并交换为 AccessToken。
referrer string
表示登录请求是在什么环境中发生的。DEFAULT:实际 Toss App 环境,SANDBOX:沙箱环境
示例:通过 Toss 认证进行登录的示例
体验示例应用
apps-in-toss-examples 在仓库中 with-app-login 下载代码并试用。
2. 获取 AccessToken
用于调用用户信息查询 API 的 发放访问令牌。
Content-Type:
application/jsonMethod:
POSTURL:
/api-partner/v1/apps-in-toss/user/oauth2/generate-token
请求
authorizationCode
string
Y
授权码
referrer
string
Y
referrer
成功响应
tokenType
string
Y
固定为 bearer
accessToken
string
Y
accessToken
refreshToken
string
Y
refreshToken
expiresIn
string
Y
过期时间(秒)
scope
string
Y
已授权的 scope(区分)
失败响应 当授权码已过期,或使用同一授权码重复请求 AccessToken 时
3. 重新获取 AccessToken
重新发放用于调用用户信息查询 API 的访问令牌。
Content-type : application/json
Method :
POSTURL :
/api-partner/v1/apps-in-toss/user/oauth2/refresh-token
请求
refreshToken
string
Y
已发放的 RefreshToken
成功响应
tokenType
string
Y
固定为 bearer
accessToken
string
Y
accessToken
refreshToken
string
Y
refreshToken
expiresIn
string
Y
过期时间(秒)
scope
string
Y
已授权的 scope(区分)
失败响应
errorCode
string
Y
错误代码
reason
string
Y
错误消息
4. 获取用户信息
查询用户信息。 DI是 null会返回,并且可无限次调用。为保护个人信息,所有个人信息都以 加密形式提供。
Content-type : application/json
Method :
GETURL :
/api-partner/v1/apps-in-toss/user/oauth2/login-me
请求头
Authorization
string
Y
使用 AccessToken 进行认证请求 Authorization: Bearer ${AccessToken}
成功响应
userKey
number
Y
N
这是仅能在该应用中使用的用户唯一标识值。即使是同一用户,如果应用不同,userKey 也可能不同。
scope
string
Y
N
已授权的 scope 列表。包含控制台中选择的项目里用户同意的值和 user_key 项目。
agreedTerms
list
Y
N
用户同意的条款列表。
name
string
N
Y
用户姓名。
phone
string
N
Y
用户手机号码。
birthday
string
N
Y
用户出生日期。(yyyyMMdd)
ci
string
N
Y
用户 CI 值。
di
string
N
Y
始终 null 值返回。
gender
string
N
Y
用户性别信息。(MALE/FEMALE)
nationality
string
N
Y
用户是否为本国人/外国人信息。(LOCAL/FOREIGNER)
string
N
Y
用户邮箱信息。该值未进行归属认证。
失败响应 如果使用无效令牌,请确认当前使用中的 access_token 的有效时间并重新发放。
服务器错误响应示例
INTERNAL_ERROR
内部服务器错误
USER_KEY_NOT_FOUND
无法找到接入登录服务的用户 key 值
USER_NOT_FOUND
无法找到 Toss 用户信息
BAD_REQUEST_RETRIEVE_CERT_RESULT_EXCEEDED_LIMIT
查询次数超限,使用同一令牌 /api/login/user/me/without-di 查询 API 后可以正常查询,但 di 字段会以 null 值返回
5. 解密用户信息
通过控制台邮箱收到的 解密密钥和 AAD(Additional Authenticated DATA) 进行。
加密算法
AES 对称密钥加密
密钥长度:256 位
模式:GCM
AAD:与解密密钥一起通过电子邮件发送给您。
数据交换方式
加密数据的前半部分包含 IV(NONCE)。
解密时必须从密文中提取 IV 才能正常解密。
解密示例代码
6. 断开登录
如果不再使用已发放的 AccessToken,或因用户请求需要使令牌失效,请删除(使其失效)令牌。
Content-type : application/json
Method :
POSTURL :
通过 accessToken 断开连接:
/api-partner/v1/apps-in-toss/user/oauth2/access/remove-by-access-token通过 userKey 断开连接:
/api-partner/v1/apps-in-toss/user/oauth2/access/remove-by-user-key
通过 AccessToken 断开登录连接
通过 userKey 断开登录连接
7. 通过回调断开登录
当用户在 Toss App 内解除与服务的连接时,会通知到商家服务器。如需对已断开连接的用户进行处理,可以使用此功能。可在控制台中输入接收回调的 URL 和 basic Auth 标头。
GET 方式
请求 requestParam 中
userKey和referrer包含
POST 方式
请求 body 中
userKey和referrer包含
referrer 是断开连接请求路径。
UNLINK
当用户在 Toss App 中直接断开连接时调用。(路径:Toss App → 设置 → 认证与安全 → 使用 Toss 登录的服务 → '断开连接')
WITHDRAWAL_TERMS
当用户撤回登录服务条款同意时调用。(路径:Toss App → 设置 → 法律信息及其他 → 条款及个人信息处理同意 → 按服务分类的同意内容:"Toss 登录" → '撤回同意')
WITHDRAWAL_TOSS
当用户注销 Toss 会员时调用。
故障排查
本地开发时发生认证错误时
本地开发时发生认证错误的原因主要有两种。
认证令牌已过期 之前发放的认证令牌可能已过期。请获取新令牌后重试。
开发者登录失败 可能是在沙箱环境中尚未使用开发者账号登录。请参考沙箱应用下载,完成登录后再试。
最后更新于
这有帮助吗?