我有一個關於React中會話cookie的問題。在React中使用會話Cookie
目前,這是我如何驗證用戶:
export function loginUser({ email, password }) {
return function(dispatch) {
axios.post(`${API_URL}/users/authenticate`, { email, password }, { withCredentials: true })
.then((response) => {
if (response.data.result_status == "success") {
localStorage.setItem("token", JSON.stringify(response.data.user))
dispatch({ type: AUTHENTICATE_USER });
browserHistory.push("/home");
})
}
})
.catch(() => {
dispatch(authError('Incorrect Login Info'));
});
}
}
我送email
和password
到URL。如果response.data.result_status == "success"
,那麼我將用戶信息(如他們的名字和電子郵件)設置爲localStorage標記,我打電話給AUTHENTICATE_USER
,它將另一個localStorage項設置爲true。
由於我使用的是localStorage,所以當我重新加載時數據仍然存在。只要認證的localStorage沒有設置爲空,我就留在系統上。
但是,現在我們希望在系統中保持長時間,因爲cookie的會話沒有過期。目前,我基於我設置爲本地存儲的令牌而不是cookie保留在系統上。
後端沒有使用JWT,只是一個cookie。有沒有辦法讓我檢查cookie是否仍在與axios進行會話?
你不能爲您在XHR響應的cookie。您可以在請求發出之前和之後比較cookie。 – elmeister
@elmeister感謝您的回覆。如何「檢查」cookies?我需要將它設置爲localStorage中的令牌嗎? – lost9123193
我認爲你最好從https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie開始 – elmeister