2016-05-17 43 views
1

我正在構建一個帶有Rails後端的iOS應用程序。將iOS和Rails API應用程序中的iOS鑰匙串存儲令牌和密碼可以嗎?

對於身份驗證,我使用名爲devise_token_auth的rails gem。 https://github.com/lynndylanhurley/devise_token_auth

我在註冊或登錄後在iOS鑰匙串中存儲訪問令牌,客戶端ID和電子郵件。

但是,出於安全原因,令牌應該在2周內過期,所以iOS用戶應該每2周重新登錄一次。

我想你可以在這種情況下使用刷新令牌,但我不能從devise_token_auth gem找到刷新令牌。

因此,在這種情況下,在iOS密鑰鏈中存儲用戶密碼以便在令牌過期時自動重新登錄或者將密碼存儲在鑰匙串中是不應該避免的壞主意?

如果在密鑰鏈中存儲密碼以避免每隔2周從移動應用程序登錄是不好的做法,那麼是否有建議可以使用哪個refresh-token?

我想知道如果我可以使用此jwt寶石刷新令牌。 https://github.com/nsarno/knock

回答

1

存儲用戶憑證是一種不好的做法,應該避免。它會挫敗試圖通過過期令牌使應用程序更安全的觀點。

爲避免在正在使用的應用程序中間過期令牌的常見問題,您可以實施滑動會話。這個想法是發送一個新的短期令牌,並且每個用戶都進行了認證操作。只要用戶處於活動狀態,他就會保持身份驗證狀態。

用戶只有在非活動狀態持續時間超過過期時間(本例中爲2周)後纔會再次提示輸入其憑據,我認爲這是有意義的。

您還可以在knock中看看這個issue,討論滑動會話和刷新標記。

+0

謝謝,你的回答是非常豐富的,它幫助了很多! –

+0

除滑動會話外還有其他一些方法嗎?或者,這是API與移動應用交互的最常用方法嗎? – user805981

相關問題