You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Identity Platform REST API实现SSO与手机号用户登录?

使用Identity Platform REST API实现手机号与SSO登录

一、手机号登录流程

手机号登录分为发送验证码和验证验证码并获取身份令牌两个步骤:

1. 发送验证码

向以下端点发送POST请求:
https://identitytoolkit.googleapis.com/v1/accounts:sendVerificationCode?key=YOUR_API_KEY

请求体示例:

{
  "phoneNumber": "+1234567890",
  "recaptchaToken": "你的reCAPTCHA验证令牌"
}

注:reCAPTCHA令牌需通过前端集成reCAPTCHA v2或v3获取,用于防止机器人请求。

2. 验证验证码并登录

用户输入验证码后,向以下端点发送POST请求:
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPhoneNumber?key=YOUR_API_KEY

请求体示例:

{
  "phoneNumber": "+1234567890",
  "verificationCode": "用户输入的6位验证码",
  "returnSecureToken": true
}

成功响应会返回idToken(身份令牌)、refreshToken等,用于后续身份验证。

二、SSO登录流程(以OAuth2提供商为例)

SSO登录需要先引导用户完成第三方授权,再用授权码交换Identity Platform的身份令牌:

1. 引导用户到第三方授权页面

构造授权URL(以Google为例),参数需包含:

  • client_id:Identity Platform控制台创建的Web客户端ID
  • redirect_uri:你的回调URL(需在Identity Platform控制台配置)
  • response_type:code
  • scope:openid email profile

2. 用授权码交换身份令牌

用户授权后,第三方会重定向到你的回调URL并携带code参数,将该授权码发送到以下端点:
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=YOUR_API_KEY

请求体示例:

{
  "requestUri": "你的回调URL",
  "postBody": "code=用户授权码&client_id=你的Web客户端ID&redirect_uri=你的回调URL",
  "returnSecureToken": true
}

成功响应同样会返回idToken等身份凭证。

三、完整文档位置

你可以查看官方的Identity Platform Accounts REST API参考文档,其中包含所有登录相关的端点细节,包括手机号、OAuth2提供商、密码登录等全场景的实现说明。

四、关于Dart/Flutter依赖的说明

直接封装上述REST请求为Dart包是完全可行的方案,既可以同时支持Dart和Flutter项目,也能避免引入Firebase SDK带来的依赖冲突问题。你可以基于Dart的http包来实现这些HTTP请求的封装。

内容的提问来源于stack exchange,提问作者anonymous-dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 08:01:01