登录
SDK 提供三方登录桥接能力。H5 通过 SDK 触发原生三方登录(Google / Apple 等),拿到三方凭证后自行调业务后端换 token。
getAuthProviders()
Section titled “getAuthProviders()”获取宿主 App 支持的三方登录方式列表。
const providers = await SuperSDK.getAuthProviders();// ['google', 'apple']返回值: string[] — Provider 名称数组
requestLogin(options)
Section titled “requestLogin(options)”触发指定方式的三方登录。
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.provider | string | 是 | 登录方式名称(从 getAuthProviders 获取) |
返回值: ThirdPartyCredential
| 字段 | 类型 | 说明 |
|---|---|---|
| provider | string | 登录方式名称(始终存在) |
| token | string | 主凭证(Google=ID Token, Apple=Identity Token) |
| authorizationCode | string | 授权码(部分 Provider) |
| string | 用户邮箱 | |
| displayName | string | 用户显示名 |
| photoUrl | string | 用户头像 URL |
| raw | object | Provider 原始数据 |
不同 Provider 返回的字段不同,仅
provider保证存在。
错误码:
| code | 含义 | 建议处理 |
|---|---|---|
| CANCELLED | 用户取消登录 | 静默处理,不弹错误提示 |
| PROVIDER_NOT_FOUND | 未注册的 Provider | 检查 getAuthProviders 返回值 |
| NOT_IMPLEMENTED | 宿主未实现 LoginService | 联系宿主开发者 |
| ERROR | 其他错误 | 展示错误信息 |