跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 前后端分离,用 React/Vue 框架下,用户权限应该用 cookie 验证?还是 token 验证?
未分類
28 12 月 2020

前后端分离,用 React/Vue 框架下,用户权限应该用 cookie 验证?还是 token 验证?

前后端分离,用 React/Vue 框架下,用户权限应该用 cookie 验证?还是 token 验证?

資深大佬 : liudaqi 6

前后端分离的框架,用户权限大家用 cookie 验证?还是 token 验证?
大佬有話說 (33)

  • 資深大佬 : tabris17

    都一样,cookie 本质上也就是 HTTP 请求的一个头部而已

  • 資深大佬 : 3dwelcome

    传统的 Cookie 挺好用的,然而我另辟蹊径,用的是 localStorage 存用户的 session 。
    是为了兼容一些特殊的场景,我代码里面很多服务器推送,WSS 之类的,没发 HTTP 请求,也就没实时更新 cookie.

  • 資深大佬 : mebtte

    token

  • 資深大佬 : ben1024

    有中间层就 cookie + csrf
    没有就 token

  • 資深大佬 : hanxiV2EX

    同时上

  • 資深大佬 : totoro52

    看你后端喽

  • 資深大佬 : sunderls

    Cookie 是 client 存储技术
    token 是数据签名
    二者不存在二选一的问题

    你想问的估计是用 token 还是用 db 维持 session

    这个取决于服务器端的设计

    考虑到多台服务器的共享问题。token 的扩展性更好

    至于 client 的存储 因为 cookie 有 httpOnly 选项 比其他 localstorage 之类的更好

    所以一般情况下。建议 cookie ( httponly ) + token

  • 資深大佬 : VensonEEE

    这和 vue 、react 没有关系。
    复杂的系统,分布式的系统,token 是首选。拓展性强。
    简单的系统,基于 session 的认证,cookie 是首选。简单易维护。

  • 資深大佬 : securityCoding

    写来写去最后都会变成 token , 存哪里不重要最终都要被服务端获取并解析

  • 資深大佬 : coderfuns

    具体问题具体分析啊。如果只是自有业务那 cookie 、token 都可以,如果是对接第三方,比如要 iframe 嵌入到其他系统,在二级域名保证不了同一源的情况下只能用 token 这种方式。所以如果考虑更好的扩展性,建议用 token 。

  • 資深大佬 : CoderGeek

    token

  • 資深大佬 : chendy

    用 cookie 其实也是把 token 存在 cookie 里
    项目简单的话这种方式也够用了

  • 資深大佬 : ysicing

    看场景咯,我们是有 cookie 先用 cookie,没有在查 token

  • 資深大佬 : rodrick

    应该是想要问 token 存 cookie 还是存 webStorage ?还是问直接用 cookie 存鉴权信息?

  • 資深大佬 : Sapp

    这对前端不是一回事吗?你用 cookie 还不是等于把 token 存进去?你用 token 你自己存进 localStorage 里不也是 cookie 的效果?只是要手动添加进 headers 里,cookie 他会自己带进去而已

  • 資深大佬 : shanghai1943

    @3dwelcome #2 老哥请教一个 websocket 负载均衡的问题。之前用 ws+nginx+java 的 spring 架构,在 NGINX 端采用了 ip_hash 的方式来做负载均衡,弊端是每个 ws 连接只能固定请求到某个后端服务,如果该服务重启了就可能导致 ws 的连接全都失效了,相当于重新指向别的后端服务了。想请教下你们是如何处理 ws 的负载均衡问题的?感谢。

  • 資深大佬 : 3dwelcome

    @shanghai1943 我们的服务器都是热加载更新的,只要机房不掉电,用户 ws 就不会断线,完全不存在你说的这种情况。

  • 資深大佬 : shanghai1943

    @3dwelcome #17 方便透露你们的服务器是用的什么架构技术么?感谢。

  • 資深大佬 : 3dwelcome

    @shanghai1943 我们的 ws 模块是插件化接入到 web 服务器,所以热加载比较容易。
    你们 nginx 热加载应该也是可以的,可能后端没吃透这块。
    为了用户体验考虑,强行踢下线感觉肯定不好。如果后端实在太菜,你们前端可以加个状态恢复功能,在无感知情况下让用户重连。(正常 websocket 断开和踢用户下线走两个不同的初始化路由)

  • 資深大佬 : shanghai1943

    @3dwelcome #19 我们这边用的是 NGINX 做了请求的负载均衡,你们那边是用什么来做负载均衡的?

  • 資深大佬 : 3dwelcome

    @shanghai1943
    我们用户数还没到负载那部分。。可能给不了什么有效建议,一台服务器正常也能撑个几万连接数了。
    我可能没看仔细你的问题,热加载对于跨不同服务器,好像是没什么特别的帮助,socket 都断开了。
    这种案例,以前网游服务器集群挺多的,可以考虑参考一下。

  • 資深大佬 : shanghai1943

    @3dwelcome #21 好的。感谢。

  • 資深大佬 : karnaugh

    如果跨域名的话,就只能 cookie 咯

  • 資深大佬 : bianz103

    可以 cookie 和 token 都支持下。小程序没有 cookie

  • 資深大佬 : KuroNekoFan

    我觉得当代 web 开发能避免 cookie 就避免 cookie

  • 資深大佬 : KuroNekoFan

    不过你这问题问的不明确,token 也可以以 cookie 的形式存在啊

  • 資深大佬 : darknoll

    cookie 方便呗,但是没法跨域

  • 資深大佬 : amundsen

    jwt 的设计就行了。

  • 資深大佬 : crclz

    后端支持 2 种呗,既满足了习惯于用 token 的,又满足传统的

  • 資深大佬 : xuanbg

    cookie 只是浏览器存储数据的一种方式,和 token 不是一回事啊。和 token 对标的是 session 。session 和 token 本质上没啥差别,只不过 token 可以承载更多的信息,使用上更加灵活。

  • 資深大佬 : learningman

    @3dwelcome 那更推荐 sessionStorage,和 cookie 的 httponly 差不多

  • 資深大佬 : chairuosen

    token 。 想深一点,根本区别是后端控制流程,还是前端控制的问题。 前后不分离时期是后端控制,前后分离是前端控制。

  • 資深大佬 : weixiangzhe

    后端只有 jwt 和 session,前台存的 sessionid 或者 token 个人认为能用 httponly 的 cookie 直接用 cookie 就好,不行就会 sessionStorage 吧

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具