跳转到内容

登录

SDK 提供三方登录桥接能力。H5 通过 SDK 触发原生三方登录(Google / Apple 等),拿到三方凭证后自行调业务后端换 token。

获取宿主 App 支持的三方登录方式列表。

const providers = await SuperSDK.getAuthProviders();
// ['google', 'apple']

返回值: string[] — Provider 名称数组

触发指定方式的三方登录。

try {
const credential = await SuperSDK.requestLogin({ provider: 'google' });
console.log(credential.provider); // 'google'
console.log(credential.token); // 主凭证(Google ID Token / Apple Identity Token)
console.log(credential.authorizationCode); // 授权码
console.log(credential.email); // 用户邮箱
console.log(credential.displayName); // 用户名
// 拿到凭证后,H5 自行调后端换业务 token
const res = await fetch('/api/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(credential)
});
const { token } = await res.json();
} catch (e) {
if (e.message === 'CANCELLED') {
// 用户取消,不弹错误
} else {
console.error('登录失败:', e.message);
}
}

参数:

参数类型必填说明
options.providerstring是登录方式名称(从 getAuthProviders 获取)

返回值: ThirdPartyCredential

字段类型说明
providerstring登录方式名称(始终存在)
tokenstring主凭证(Google=ID Token, Apple=Identity Token)
authorizationCodestring授权码(部分 Provider)
emailstring用户邮箱
displayNamestring用户显示名
photoUrlstring用户头像 URL
rawobjectProvider 原始数据

不同 Provider 返回的字段不同,仅 provider 保证存在。

错误码:

code含义建议处理
CANCELLED用户取消登录静默处理,不弹错误提示
PROVIDER_NOT_FOUND未注册的 Provider检查 getAuthProviders 返回值
NOT_IMPLEMENTED宿主未实现 LoginService联系宿主开发者
ERROR其他错误展示错误信息