jwt token 前端应该存在cookie还是localstorage里面

查了不少资料,都说localstorage不安全,放在cookie里面设置httponly比较好。

原本我想做的是,后端返回给我token,我将token放在cookie里面,在请求的的时候把cookie里面的token放在header里面。

但是设置了httponly之后我自己就取不出来token。

而且,如果设置httponly那不就是很像session那一套去了吗(session把自己的sessionid放在cookie里面,后端根据前端带的cookie里面的sessionid来获取对应的session,后端也是根据cookie来去token,这样如果有移动端,就要增加后端额外代码判断处理吗?我大概是这个意思)

我的问题就在于,如果设置httponly,我自己在去cookies.get('token')的时候是取不出来放在header里面的。

阅读 11.1k
1 个回答

session 是后端为了保证会话状态 做的,与前端无关。无论放在 cookie 还是 localStorage,都是基于 token。

token 目的是无状态, 前端把 token 发上去就实现了认证,每次都携带此次 api 需要的全部信息即可。至于后端用不用 session,这个与前端无关。

还有一种是在请求时候放入 http 请求头部。

更新

选定了cookie方案, 去设置token,如果放在 cookie 中,那么你就不需要管理cookie。就让后端处理 cookie.怎么放入,怎么取出。cookie 是每次请求会带到服务器端的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题