我的工作,我現在用的sessionStorage保持用戶登錄通過電子郵件是否與驗證令牌中的sessionStorage可檢查反應通量應用。如果它們可用並且登錄後的時間少於15分鐘,我會觸發一個助推動作來登錄用戶。另外,我還有另一個功能,可以在15分鐘後通過清除sessionStorage而無需記錄用戶。保持用戶登錄,在反應通量應用程序?
它正常工作,直到我刷新頁面。此時,15分鐘後將用戶註銷的setInterval函數將自行重置。
下面的代碼,使我所提到的意義:
在我父組件,我有以下的功能,我componentDidMount函數中調用。
checkSession: function() {
if (!_.isNull(window.localStorage)) {
var currentTimeStamp = Date.parse(new Date());
var logInStamp = window.sessionStorage.time;
var difference = currentTimeStamp - logInStamp;
if (Math.floor((difference/1000)/60) < 15) {
var data = {
email: window.sessionStorage.email,
scheduler_slug: window.sessionStorage.slug
};
ActionCreator.loginUser(data);
}
}
},
logOut: function() {
if (this.state.isLoggedIn === true) {
window.sessionStorage.clear();
ActionCreator.logOutUser();
}
},
componentDidMount: function() {
Store.addChangeListener(this._onChange);
this.checkSession();
setInterval(this.logOut, 900000);
}
我在創建會話的ajax調用成功時設置了sessionStorage的關鍵值。在隨後的api調用中,我將響應中第一次調用收到的令牌發送回我的響應頭中進行認證。
我的問題是2倍:
1)是我目前的做法足以維護用戶會話?會使用Cookie更好嗎?
2)如果我目前的做法是好的,那麼我需要找出一種辦法,以防止定時器從復位上,我認爲將是一個簡單的辦法,但一切我看到涉及使用cookie刷新頁面。有另一種方法嗎?