2016-11-08 79 views
1

我使用Angular 1.5.8和Laravel 5.2創建了一個應用程序。我正在使用Luca Degasperi創建的一個圖書館來創建基於令牌的身份驗證在http請求之前檢查訪問令牌

Via Angular我撥打了電話,並收到了access_token,TTL和refresh_token。我在localStorage上存儲access_token和refresh_token。我可以使用access_token來調用API來獲取一些數據。當令牌過期時,我收到一條消息,表示令牌對於401代碼無效

所以我的問題是如何在我的API發送http請求之前檢查令牌是否仍然有效?什麼是刷新令牌的最佳方式?好的,我可以發送一個請求來刷新我的令牌到https://my.api/oauth?grant_type=refresh_token&refresh_token=f32j93201h00xpaf1,但是如何在每個http請求之前檢查它?如果響應代碼是401,我可以重複呼叫嗎?如何?

請給我一些建議:)

+0

你可以使用[$ http錯誤響應攔截器](https://docs.angularjs.org/api/ng/service/$http#interceptors)如果響應代碼是401,則重複呼叫。 – georgeawg

回答

0

你不能。你必須檢查登錄。因此它只是一個重新登錄。

我想如果你得到一個401,你的刷新標記已經完成。

雖然我猜你可以加入該刷新標記與您的所有請求?我可能錯了。

確保您的令牌TTL始終保持最新狀態,方法是不時刷新其TTL(如向您的API發送請求)。

0

您不能使用TTL來確定令牌是否仍然有效嗎?當您將令牌存儲在本地存儲中時,您可以添加令牌存儲的日期/時間,並且每次進行服務調用時都可以檢查TTL與令牌存儲的時間。

雖然它只會告訴你它何時到期,而不是因爲某種其他原因導致令牌失效。

相關問題