关于token存放在cookie中

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

clipboard.png

但是token那边是有有效期的,我在cookie设置的有效期和后端设置的有效期不一致,导致有时候cookie没过期结果token过期了。

所有各位大神你们一般都是把token存放在哪里呢?还有我这个问题一般怎么解决。

阅读 22.6k
5 个回答

token 是否过期,应该后端接口中来判断,不该前端来判断,因为用户拿到一个 token,然后一直在用这个 token,而你在用户登录的时候就设置了过期时间,这样是不准的。

我建议,把 token 存在 cookie 上,不设置过期时间,如果 token 失效,就让后端在接口中返回固定的状态表示token 失效,需要重新登录,再重新登录的时候,重新设置 cookie 中的 token 就行。

js 创建 cookie 是用 document.cookie = 'token=221212fsfsfafas'

这里有个更方便的方法,也是更安全的。
让后端在接口的返回值 header 里添加 set-Cookie,这样的话浏览器会自动把 token 设置到 cookie 里。

还有,如果接口的返回值 header 里有设,Http-Only: true 的话,js 里是不能直接修改 cookie 的,这样更安全点。

具体的等下说

你的token作用是什么?每个用户都需要一个token?

我们这边在实际工程里面,一般都是后端处理token过期这个问题,前端要么不设有效期,要么设的比较长,都交给后端处理。

交给后端处理,存储进redis设过期时间

推荐问题
宣传栏