我開發一個Android應用程序,我有點糊塗了關於令牌和刷新令牌。 現在基本上,用戶使用手機號碼和短信發送代碼登錄後,認證服務器會返回一個訪問令牌,用於訪問所有apis。對於認證服務器,我使用了帶有jwt-auth庫的Laravel。 當訪問令牌將過期時,我將使用AccountManager中存儲的用戶憑證詢問新的訪問令牌。 這是否是實現此身份驗證的正確方法?的Android刷新令牌
還是我錯過了刷新令牌,我問什麼時候該到期了新的訪問令牌?
由於提前, 丹尼爾
我開發一個Android應用程序,我有點糊塗了關於令牌和刷新令牌。 現在基本上,用戶使用手機號碼和短信發送代碼登錄後,認證服務器會返回一個訪問令牌,用於訪問所有apis。對於認證服務器,我使用了帶有jwt-auth庫的Laravel。 當訪問令牌將過期時,我將使用AccountManager中存儲的用戶憑證詢問新的訪問令牌。 這是否是實現此身份驗證的正確方法?的Android刷新令牌
還是我錯過了刷新令牌,我問什麼時候該到期了新的訪問令牌?
由於提前, 丹尼爾
我覺得這是更好地使用這兩種token
和refresh token
,所以你並不總是有當你access token
過期發送您的憑據。此外,將用戶憑證存儲在客戶端設備上並不安全,您應該將這些信息存儲在服務器上,並要求用戶在需要時鍵入。
在這裏,我如何實現令牌/刷新令牌過程:
1:你把你的credentials
到您的認證服務器(它會送你回一個access token
(我用的是JSON web token
型至極沒有存儲在數據庫中)和refresh token
(存儲在數據庫中)
2:當你讓你檢查你的服務器的請求,如果access token
已過期,如果是這樣,你讓你的認證服務器的請求與refresh token
在參數爲了有一個新的access token
(取決於配置你的服務器的離子可能還給你是否有新access token
,或者一雙新access token
和refresh token
我喜歡)。
3:如果refresh token
已過期,請向您的credentials
請求一個新的令牌對。
感謝Frederic。最後我用laravel(https://github.com/tymondesigns/jwt-auth/wiki)的JWT-auth庫進行此過程: 1.用戶將他的憑證發送到auth服務器 2.與我創建的庫的訪問令牌 3.我喜歡存儲在的AccountManager類的Android 4的密碼,此令牌當令牌過期我要求如果新令牌的請求失敗,我要求用戶重新發送憑據使用它 5.一個新的。 您認爲這是一個正確的過程嗎? – Lic
通常,我們使用刷新令牌來限制通過電線向auth服務發送的客戶端證書的使用。 「訪問令牌的生存時間越短,客戶端證書越需要用來獲取新的訪問令牌,因此攻擊者必須破壞客戶端證書的機會越多。因此,如果您擁有一次性刷新令牌,您可以使訪問令牌的ttl任意小,而不會影響客戶端憑據。「在http://stackoverflow.com/questions/3487991/why-does-oauth-v2-have-both-access-and-refresh-tokens –
您可以指向哪裏,這是實現了一個教程? – suku
永遠不會存儲用戶憑據在本地數據庫。你應該使用刷新令牌。 –