2016-07-22 65 views
4

我正在實現一個Android應用程序,並且必須包含用戶登錄名。要做到這一點,我創建了我自己的驗證器,只需登錄一次。然後AccountManager可以請求訪問令牌,所以應用程序不直接處理密碼。 AccountManager存儲用戶帳戶和令牌。使用客戶經理在Android中實施JWT身份驗證

我正在使用JWT(Json Web Token)在我的REST API中對用戶進行身份驗證。

我想知道這個流程是否正確,或者在Android中有更好的方法來做到這一點。

這是我目前使用的流程:

  1. 用戶在第一次輸入用戶和密碼在登錄屏幕。

  2. 我向服務器發出請求以檢索存儲在帳戶管理器中的有效令牌(JWT)。

  3. 後續請求使用收到的訪問令牌,直到它過期(1小時)才從API中檢索內容。

  4. 令牌過期後,它可以在發佈時間後最多兩週刷新。從這一刻起,需要用戶憑證來檢索新令牌。

這個過程是否正確地使用令牌和刷新它的方式?過程安全嗎?還有其他選擇嗎?

考慮到這個流程並未使用「刷新令牌」來生成新的令牌,而是訪問令牌,那麼Android帳戶管理器的最佳用法是什麼?我應該使用哪些其他工具?是否推薦沿JWT實施Oauth2實施以實施「刷新令牌」?

乾杯!

+0

您是否得到了解決方案? – ezdookie

+0

@ezdookie不,我只是按照我所描述的來實施系統 –

回答

1

我可以告訴你,你在使用JSON Web Tokens並重現它的正確道路上。

,但你提到的安全性是所有關於加密檢索到的令牌,然後在客戶經理與您選擇的像AESRSA和一些加密方式保存它(也與用戶憑據相同)然後解密,如果你想使用。使用祕密算法使用服務器生成的祕密密鑰會爲任何黑客殺死該鏡頭。

正如您所瞭解的,擁有root訪問權限的每個人都可以掌握已保存的憑據數據庫並使用它。

使用這些技巧將降低使用涉及刷新令牌的Oauth 2.0的需求。

希望它有幫助

相關問題