2017-10-10 151 views
1

我有一個應用程序在客戶端:android應用程序和服務器端:基於瓶子的休息api,使用JWT令牌登錄。使用2種不同的登錄方法:在一個應用程序中使用JWT令牌和Google登錄

爲了更好的安全性,我想將登錄和Google結合起來。

的問題是: 天真的解決方案,是在客戶端: 我需要「分裂」爲2例,登錄代碼 - 這不是那麼糟糕, 但後來爲每個請求到服務器 - 我需要檢查是否有jwt令牌或谷歌用戶數據,併發送正確的調用。

然後在服務器端 - 我需要在Api的每個部分「分解」我的代碼,以檢查它具有jwt token或Google用戶的天氣。 這個天真的解決方案對我來說似乎很難看,而且我問是否有更好的方法解決這個問題。

我的朋友建議我放棄jwt連接,只使用谷歌,但從用戶的角度來看,我認爲最好有2個選項作爲選項。

回答

0

一個簡單的答案:爲什麼不在用戶使用Google登錄後向用戶提供JWT令牌?我們通常如何做到這一點:在客戶端登錄 - >發送Google令牌 - >服務器驗證併發送JWT令牌 - >用戶使用JWT令牌,服務器使用Google令牌更新用戶信息,如個人資料圖像或名稱。

+0

我不想在JWT和Google令牌之間建立連接。 我想讓不想用谷歌登錄的用戶使用正常的用戶名和密碼登錄, 以及希望用谷歌登錄的用戶使用它。 我從你的回答中瞭解到,你建議合併2個解決方案,首先用google登錄,然後使用jwt令牌。但是,如果用戶不想使用谷歌? – JohnSnowTheDeveloper

+0

據我所知這是唯一的方法。否則,您需要在用戶和Google之間進行主動身份驗證。 – jobbert

+0

我已閱讀更多關於它。 我明白,對於登錄,用戶可以使用Google登錄或正常登錄,就像他們將獲得JWT令牌作爲響應並使用它一樣。所以沒有必要改變應用程序的每個地方。我試圖找出在Flask服務器中執行此操作的好方法,該服務器當前僅配置爲JWT – JohnSnowTheDeveloper