Auth — 认证授权
提供 SSO 登录、账号关联、生物识别和 Token 获取等能力。
API 参考
woo.requestSSOLogin(options?)
发起 SSO 单点登录。ts
const result = await woo.requestSSOLogin()
console.log(result.token) // SSO token
console.log(result.userId) // 用户 IDwoo.requestAuthorizationToken(options?)
获取 API 调用凭证(JWT)。ts
const { token, expiresIn } = await woo.requestAuthorizationToken()
// 存入 Storage,定期刷新
await woo.setStorage({ key: 'auth:token', data: { token, expiresIn } })| 字段 | 类型 | 说明 |
|---|---|---|
token | string | JWT Token |
expiresIn | number | 过期时间(秒) |
woo.getUserProfile(options?)
获取当前登录用户信息。ts
const profile = await woo.getUserProfile()
console.log(profile.id)
console.log(profile.name)
console.log(profile.avatar)woo.authenticateWithBiometric(options?)
使用生物识别(Face ID / 指纹)进行本地身份验证。ts
try {
const result = await woo.authenticateWithBiometric()
if (result.success) {
unlockWallet()
}
} catch (err) {
if (err.code === BridgeErrorCode.BiometricCancelled) {
// 用户取消
}
}woo.requestLinkedLogin(options?)
关联账号登录(第三方账号绑定场景)。woo.submitAccountLink(options?)
提交账号关联结果。woo.unlinkAccount(options?)
解除账号关联。推荐认证流程
ts
// 应用启动时检查登录态
async function bootstrap() {
const { data: tokenData } = await woo.getStorage<{ token: string; expiresIn: number }>({
key: 'auth:token',
})
if (!tokenData || Date.now() > tokenData.expiresIn * 1000) {
// Token 过期或不存在,发起 SSO
const result = await woo.requestSSOLogin()
const { token, expiresIn } = await woo.requestAuthorizationToken()
await woo.setStorage({
key: 'auth:token',
data: { token, expiresIn: Date.now() + expiresIn * 1000 },
})
return token
}
return tokenData.token
}