我在構建一個AngularJS應用程序,該應用程序與使用身份驗證令牌對用戶進行身份驗證的API進行交互。一切似乎工作正常,但我正在努力正確堅持身份驗證令牌之間的請求。在AngularJS中持久化身份驗證令牌
目前,當用戶使用正確的憑據登錄時,返回authToken
,並且我將其設置爲$rootScope.authToken
。我還爲未來的請求發送授權令牌,但是如果我進行重新加載,F5 $rootScope
的網頁將被清除,我必須再次進行驗證。
我知道我可以將authToken存儲在cookie中,但這是否是最安全的方式?我最好使用本地存儲來存儲令牌嗎?如果使用本地存儲,那麼當用戶重新啓動瀏覽器時不會被清除?理想情況下,我希望登錄可以持續幾天。
在這種情況下,在服務器端發送給用戶之前加密登錄令牌是否可以接受,以便他們存儲加密版本?然後,當令牌被髮送到服務器時,它會被解密並進行檢查以確保它是有效的。撤銷所有用戶會話並不是問題,它們存儲在一個表中,並且每個客戶端請求都會被檢查。如果我清除表格,每個人都會註銷:) –
是的,絕對要加密服務器端,並在服務器接收到每個API請求時重新檢查它。這是最安全的用作基本安全門的模型。這種方法還存在一些問題,我建議設置一個CSRF令牌(除了authToken的值)。 AngularJS本身支持這個輔助令牌,這會給應用程序增加另一個障礙。查看XSRF上的文檔:https://docs.angularjs.org/api/ng/service/$http –
真棒,謝謝。 –