2016-04-25 26 views
0

Redux的狀態在刷新後消失。我在全局的user對象中保留了一個userToken對象。但由於會話刷新後仍然存在,我認爲有一個更好的地方我存儲tokenRedux Keep Session

redux管理會話的常規方式是什麼?在這種情況下,我應該在哪裏保留token

回答

1

您應該將令牌保存在瀏覽器的本地存儲中。

在您分派logInSuccess動作之前添加令牌。

function parseUser(response,dispatch){ 
    localStorage.setItem("YOUR-APP-NAME", response.token); 
    dispatch(logInSuccess(response.token)); 
} 

而且,不要忘記令牌添加到您的AUTH減速的初始狀態

const initialState = { 
    ... 
    token: localStorage["YOUR-APP-NAME"], 
    ... 
}; 
3

上一頁答道建議使用localStorage的,讓您的令牌,但我對localStorage的建議作爲可靠的商店。

有多個案例使localStorage不適合存儲重要數據。值得注意的是,有一個空間配額和一些瀏覽器在隱私瀏覽中關閉它。

由於令牌需要伴隨每個記錄的請求到服務器,那麼真正你想要的只是一個cookie

+0

在用戶縮減器中,我保留了與用戶相關的所有狀態(例如電子郵件,姓名等)。將Cookie中的'token'和所有信息一起存儲可以嗎? –

+0

好吧,有很多人會選擇通過cookies的localStorage,檢查http://stackoverflow.com/questions/3220660/local-storage-vs-cookies或https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/ – QoP

+0

@QoP在該鏈接中,具有超過500個upvotes的接受答案具有以下聲明:「您將希望以任何方式將會話cookie保留爲cookie雖然。」 – Buzinas