1

不知道這是否適合這個問題。這不是必需的100%編碼問題,但它也不是編碼問題。無論如何,這裏是如何鏈接谷歌行動,移動應用程序,後端服務器和Firebase身份驗證用戶帳戶?

故事:我想創建一個購物系統。用戶可以使用該網站或移動應用程序或谷歌助手獲取產品信息並從該購物系統進行購買。我面臨的問題是如何將這3名客戶中的用戶關聯起來。更具體的谷歌助理/行動。

我所做的事情: 使用firebase auth用於身份驗證和登錄用戶到網站或移動應用程序。用戶通過身份驗證後,可以使用Firebase訪問令牌供網站或移動應用使用。網站或移動應用可以將Firebase訪問令牌發送到後端服務器,後端服務器可以通過firebase admin sdk驗證此訪問令牌。一切都按預期工作,直到我想引入google actions/assistant

對於谷歌助理/操作:我跟着thisthis用於將用戶登錄到谷歌的行動應用程序。此時,如果用戶使用其Google帳戶登錄Google操作應用程序,我可以獲取用戶基本的個人資料信息。

的問題:

  1. 後,我得到了用戶的個人資料,如用戶名,電子郵件等,從谷歌的行動登錄,然後我查詢在後端服務器上的數據庫,如果我找到一個用戶使用此ID或電子郵件,那麼這是一個有效的和經過身份驗證的用戶,我將允許用戶通過谷歌助手進行購買。 這種方法安全可靠,可以在谷歌行動/助手上識別用戶嗎?
  2. 假設上述方法安全可靠,如果用戶帳戶是使用其他電子郵件帳戶而不是谷歌帳戶創建的,我該怎麼辦?即,用戶最初使用非谷歌電子郵件或其他Oauth2(fb,twitter等)通過firebase身份驗證在網站或移動應用程序上註冊。在這種情況下,我的後端數據庫不會爲用戶提供Google帳戶信息,並且如果用戶使用Google帳戶登錄到我的Google動作應用程序,我將無法在現有用戶數據庫中識別此用戶。
  3. 有沒有一種方法來驗證/通過火力AUTH登錄用戶到谷歌的行動應用程序,並獲得了谷歌的行動fulfillment後端服務器上的火力點訪問令牌?如果有辦法做到這一點,我想以前的問題將不存在,因爲我將能夠使用此firbase令牌來驗證用戶,無論用戶帳戶是否使用谷歌帳戶或其他電子郵件帳戶或其他Oauth2創建供應商。
  4. 如果上述所有失敗,是傾銷firebase身份驗證,並創建我的Oauth 2服務的一個選項,它將成爲唯一可用的備份計劃?

回答

2

一些問題的答案:

  1. 如果ID或電子郵件的比賽 - 這是否識別用戶?

    嗯,是的,沒有。

    如果ID匹配,則表示您已驗證登錄帳戶的Google ID與您記錄的Google帳戶相匹配。大!這是安全的,你可以信任它。

    如果電子郵件地址爲匹配...呃...信心程度低得多。雖然谷歌確實選擇了入住檢查,但這似乎仍然在冒着風險。電子郵件地址隨時間變化。

  2. 如果通過其他方式驗證,該怎麼辦?

    我正確地總結了這個問題嗎?

    我想我不確定你在其他情況下如何處理這個問題。如果他們使用不同的帳戶(而不是電子郵件,帳戶)登錄到您的智能助理應用程序,那麼他們希望兩者有所不同?

    他們可以登錄您的使用與他們用來設置設備的帳戶不同的Google帳戶進行操作。有些流程鼓勵他們使用同一個流程,但他們不必這樣做,如果您沒有爲他們默認使用的帳戶創建帳戶,則可以使用其他流程。

  3. 我不能只使用Firebase身份驗證?

    那麼......不,是的。

    不,不可以告訴助理向您發送Firebase身份驗證令牌,而不是您想要接收的令牌。

    但是,您可以使用火力地堡驗證,如果你願意設置自己的OAuth2服務器。上面的StackOverflow問題的鏈接只是試圖解決必須自己設置OAuth2服務器的問題。如果您設置了一個,則可以讓他們使用Firebase登錄進行登錄,生成令牌並將其存儲爲其Firebase ID,然後將該令牌發送給助理客戶端。當您獲取該令牌時,您可以輕鬆將其關聯回Firebase ID。

    但是您需要完成這項工作。 Firebase和助手都不會爲您做。

    (用於火力地堡和谷歌雲,恕我直言,一個錯失的機會,但是......)

    您已經看到了如何建立一個最小的OAuth2服務器的頁面。

  4. 我應該只轉儲Firebase身份驗證?

    有沒有必要。您可以將Firebase身份驗證與設置您自己的OAuth2服務器結合使用。它是一個偉大的基地!我個人使用Firebase身份驗證和Firebase登錄(以及Firebase託管和Firebase功能)作爲我的OAuth2實施的基礎。

+1

非常感謝!我只是想知道如果這個來自StackOverflow文章的@Prisoner人可以在這裏提供一些輸入,這將是很好的。同意,如果我可以在沒有設置OAuth2服務器的情況下使用Google行動的Firebase身份驗證,那將會很好。 –

相關問題