Method: accounts.createAuthUri

如果指定電子郵件 ID,系統會檢查並傳回是否有任何使用者帳戶使用該電子郵件註冊。如果有已註冊的帳戶,就會擷取與帳戶電子郵件地址相關聯的所有供應商。

如果指定了 Identity Provider (IdP) 的供應器 ID,就會為 IdP 建立授權 URI。使用者可以前往這個 URI,透過 IdP 登入。

如要識別 Google Cloud 專案,請在要求中提供 API 金鑰

HTTP 要求

POST https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri

這個網址使用 gRPC 轉碼語法。

要求主體

要求主體包含下列結構的資料:

JSON 表示法
{
  "identifier": string,
  "continueUri": string,
  "openidRealm": string,
  "providerId": string,
  "oauthConsumerKey": string,
  "oauthScope": string,
  "context": string,
  "otaApp": string,
  "appId": string,
  "hostedDomain": string,
  "sessionId": string,
  "authFlowType": string,
  "customParameter": {
    string: string,
    ...
  },
  "tenantId": string
}
欄位
identifier

string

要擷取相關供應商的使用者帳戶電子郵件 ID。必須設定至少一個 identifierproviderId 欄位。

電子郵件地址的長度不得超過 256 個半形字元,格式為 name@domain.tld。電子郵件地址也應符合 RFC 822 addr-spec 產生內容。

continueUri

string

IdP 將使用者重新導向的有效網址。網址不得含有片段或保留的 state 查詢參數。

openidRealm
(deprecated)

string

providerId

string

使用者用於登入的 IdP 供應器 ID。這應該是已啟用登入功能的供應商 ID,可從預設支援的 IdP清單中找到,或採用 oidc.*saml.* 格式。例如 google.comfacebook.comoidc.testappsaml.testapp。必須設定至少一個 identifierproviderId 欄位。

oauthConsumerKey
(deprecated)

string

oauthScope

string

其他以空格分隔的 OAuth 2.0 範圍,用於指定與 IdP 的驗證要求範圍。用於 OAuth 2.0 IdP。

如果是 Google 供應器,則在設定這個欄位時,系統會使用授權碼流程。

context

string

不透明字串,用於在驗證要求和 IdP 的回呼之間維持背景資訊。

otaApp
(deprecated)

string

appId
(deprecated)

string

hostedDomain

string

用於 Google 供應器。使用者的 G Suite 代管網域,用於限制登入該網域的使用者。

sessionId

string

可在 accounts.signInWithIdp 中驗證的工作階段 ID,以防範工作階段固定攻擊。如果未提供,系統會產生隨機字串,並以工作階段 ID 的形式傳回。

authFlowType

string

用於 Google 供應器。要使用的驗證流程類型。如果存在,則應為 CODE_FLOW,以便指定授權碼流程。否則會使用預設的 ID 權杖流程。

customParameter

map (key: string, value: string)

要新增至授權 URI 的其他自訂查詢參數。下列參數為保留參數,無法新增:clientIdresponseTypescoperedirectUristate

針對 Microsoft 提供者,您可以在 tenant 自訂參數中指定要登入的 Azure AD 租用戶。

包含 "key": value 組合清單的物件。範例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

tenantId

string

要建立授權 URI 或查詢電子郵件 ID 的 Identity Platform 租戶 ID。如果未設定,系統會在專案中的預設 Identity Platform 例項中執行這項作業。

回應主體

accounts.createAuthUri 的回應訊息。

如果成功,回應主體會含有以下結構的資料:

JSON 表示法
{
  "kind": string,
  "authUri": string,
  "allProviders": [
    string
  ],
  "registered": boolean,
  "providerId": string,
  "forExistingProvider": boolean,
  "captchaRequired": boolean,
  "sessionId": string,
  "signinMethods": [
    string
  ]
}
欄位
kind
(deprecated)

string

authUri

string

要求的供應商授權 URI。只有在要求中設定了供應商 ID 時才會顯示。

allProviders[]
(deprecated)

string

registered

boolean

電子郵件 ID 是否代表現有帳戶。只有在要求中設定電子郵件 ID 時才會出現。

providerId

string

來自要求的提供者 ID (如有提供)。

forExistingProvider

boolean

指出使用者是否曾以要求中的提供者 ID 登入。只有在要求中設定已註冊的電子郵件 ID 時才會出現。

captchaRequired

boolean

使用者嘗試登入失敗次數過多,是否需要輸入人機驗證。只有在要求中設定已註冊的電子郵件 ID 時才會出現。

sessionId

string

要求中的會話 ID,或在缺少時由 accounts.createAuthUri 產生的隨機字串。可用來防範工作階段固定攻擊。

signinMethods[]

string

使用者先前使用的登入方式清單。每個元素都是 passwordemailLink 或 IdP 的供應商 ID 之一。只有在要求中設定已註冊的電子郵件 ID 時才會出現。如果啟用電子郵件列舉防護,這個方法會傳回空白清單。

授權範圍

需要下列其中一種 OAuth 範圍:

  • https://www.googleapis.com/auth/identitytoolkit
  • https://www.googleapis.com/auth/cloud-platform

詳情請參閱 Authentication Overview