2016-12-29 50 views
5

在我火力的應用程序,用戶可以登錄使用檢索憑據的自定義身份驗證的火力點,以自定義提供鏈接

我想讓用戶有機會鏈接兩個帳戶。所以我開的情況是:

  1. 用戶的跡象在與谷歌
  2. 用戶去設置和點擊「含弱連接」
  3. 用戶的帳戶應該會被鏈接所以他可與鬆弛登錄或谷歌下一次

按文檔,以連結帳戶,您可致電聯合供應商要麼linkWithPopup/Redirectauth.currentuser.link(credential)的電子郵件提供商(https://firebase.google.com/docs/auth/web/account-linking)。

我現在想知道我是否可以以某種方式從我的定製Slack認證中獲得AuthCredential並使用上述link(credential)方法?
是否有人成功地將帳戶鏈接到自定義身份驗證提供程序?

回答

4

這不支持開箱即用。 你可以做如下(要求順序的調整,主要是開關順序):使用鬆弛定製權威性

  1. 登錄:(自定義身份驗證帳戶這裏使用的UID可能是相同的鬆弛的用戶標識符)。
  2. linkWithPopup/Redirect/Credential使用Google提供商或憑據到現有的自定義用戶。

如果硬要提出的流量,你可以做到以下幾點:

  1. 在與谷歌第一(UID分配)。
  2. 使用Slack登錄(獲得鬆散的OAuth憑證)。
  3. 將Firebase ID令牌和閒置憑證發送到您的後端。
  4. 驗證Firebase ID令牌,查詢slack userinfo端點以獲取鬆散的用戶數據,包括鬆散標識符。
  5. 保存一個散列映射,其中Slack標識符作爲鍵,Firebase uid作爲值,另一個散列映射以firebase uid作爲鍵和鬆散標識符作爲值。
  6. 使用firebase uid設置自定義標記,設置鬆散自定義屬性(鬆弛:{鬆弛標識符})。
  7. 向前端發送自定義令牌和signInWithCustomToken(鬆散標識符現在可用於令牌)
  8. 鬆弛帳戶現在鏈接到現有帳戶。

下一次用戶與鬆弛登錄:

  1. 發送鬆弛的OAuth憑據到後端。
  2. 查詢鬆弛的userinfo以獲取鬆弛標識符。
  3. 使用鬆弛標識符鍵檢查相應的firebase uid的哈希映射。
  4. 使用firebase uid添加自定義標記,將鬆散標識添加爲自定義屬性。
  5. 使用客戶端上的自定義令牌進行登錄。

如果用戶使用Google登錄。

  1. 將firebase ID令牌發送到後端。
  2. 驗證ID令牌,使用firebase uid鍵在哈希映射中查找相應的鬆弛標識符。
  3. 將帶有Firebase uid和鬆弛標識符的Mint自定義標記作爲自定義屬性。
  4. 使用客戶端上的自定義令牌進行登錄。