鍍金池/ 問答/HTML5  HTML/ 關(guān)于token存放在cookie中

關(guān)于token存放在cookie中

在登錄后我把token存放在cookie中

clipboard.png

但是token那邊是有有效期的,我在cookie設(shè)置的有效期和后端設(shè)置的有效期不一致,導致有時候cookie沒過期結(jié)果token過期了。

所有各位大神你們一般都是把token存放在哪里呢?還有我這個問題一般怎么解決。

回答
編輯回答
初心

token 是否過期,應(yīng)該后端接口中來判斷,不該前端來判斷,因為用戶拿到一個 token,然后一直在用這個 token,而你在用戶登錄的時候就設(shè)置了過期時間,這樣是不準的。

我建議,把 token 存在 cookie 上,不設(shè)置過期時間,如果 token 失效,就讓后端在接口中返回固定的狀態(tài)表示token 失效,需要重新登錄,再重新登錄的時候,重新設(shè)置 cookie 中的 token 就行。

js 創(chuàng)建 cookie 是用 document.cookie = 'token=221212fsfsfafas'

這里有個更方便的方法,也是更安全的。
讓后端在接口的返回值 header 里添加 set-Cookie,這樣的話瀏覽器會自動把 token 設(shè)置到 cookie 里。

還有,如果接口的返回值 header 里有設(shè),Http-Only: true 的話,js 里是不能直接修改 cookie 的,這樣更安全點。

2017年1月2日 09:28
編輯回答
筱饞貓

交給后端處理,存儲進redis設(shè)過期時間

2018年8月23日 01:14
編輯回答
老梗

你的token作用是什么?每個用戶都需要一個token?

2018年7月1日 20:23
編輯回答
汐顏

具體的等下說

2017年2月23日 04:51
編輯回答
扯不斷

我們這邊在實際工程里面,一般都是后端處理token過期這個問題,前端要么不設(shè)有效期,要么設(shè)的比較長,都交給后端處理。

2018年2月26日 14:53