为了账号安全,请及时绑定邮箱和手机立即绑定

小白,请教各位大佬!PHP和vue做前后端分离,登录状态怎么记录求解答!

小白,请教各位大佬!PHP和vue做前后端分离,登录状态怎么记录求解答!

蝴蝶不菲 2019-11-03 10:16:15
以前没有分离的时候,用户登录后直接在后端通过session记录一下登录成功标识,但是现在前后端分离后,这个登录状态一般需要怎么记录呢?要是登录成功后把登录成功的状态比如:在客户端本地记录一个isLogin=1,每次路由的时候通过判断本地的isLogin来决定是否需要登录。但是上面这种方式总感觉不是很合理。希望有安全合理的方法的给讲一讲呗!
查看完整描述

2 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

前后端分离指的是前端页面代码和后端脚本代码分离,也即HTML与PHP分离,这样前端单独就可以工作,不用写完前端代码再给后端往里套PHP模板了。
这跟你还继续不继续用Session没有半毛钱关系,你照样可以继续用Session。因为Session的本质就是一个特定的Cookie,只要你登录的接口继续返回Set-Cookie:$PHP_SESSIONID=$ID就可以。
你还可以接着用Session里的值来判断是否登录了。但前后端分离还有一个好处,就是像你说的这样、前端可以自行存储并判断是否已登录(注意,仅仅是一个判断,实际登录与否和权限相关的还是要以后端校验结果为准,不要完全依赖于前端),这样可以不用发送HTTP请求就能先判断了,省一次网络I/O开销。
但最优实践往往不用Session了,一般是Token方案(如JWT、AccessToken等等),这样除了浏览器可以用之外,还可以给App、小程序等其他端方便使用(硬要就用Session也不是不行,还得App自己手动维护Cookie,麻烦)。
                            
查看完整回答
反对 回复 2019-11-03
  • 2 回答
  • 0 关注
  • 420 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信