以前没有分离的时候,用户登录后直接在后端通过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,麻烦)。
添加回答
举报
0/150
提交
取消