前后端分离处理权限验证问题

client发送username和password到server

server验证成功后, 写cookie到client,然后返回ok的json, 其中cookie的key要存储在redis中,value就是用户信息, 并且要设置key的超时时间,如:60分钟

client收到ok后, 进行相应的业务操作, 以后每次请求server都会自动带上cookie, 不用你写代码

server端的filter(你肯定用filter来实现)中会每次验证传过来的cookie的key在redis中是否存在, 有就代表登录成功过可以操作, 没有就返回错误标识

注意: 在登录成功后, 每次调用服务器接口时候, 都要为redis的key进行续期,如60分钟

当redis的key超过60分钟, 自己会删除这个key, 那么再次请求server时, 就会收到需要登录的返回值

当用户主动退出系统的时候, 也要在server中删除redis的key

再来说说token:

token一般用来做显示的身份验证, 比如手机验证码之类的, 这些都需要手动传递token到后台

在client点击验证码

server发送验证码,返回给client一个token

在client对验证码进行验证,传递token + 验证码到server

server对token+验证码进行验证

-------------------------------------------------------------------------------------------------

1、定义路由的时候可以配置 meta 字段,在beforeEach勾函数进行权限过滤。

2、登录后后端返回一个标识(token),所有请求都带上token。如果对不上则返回403,然后进行跳转到登录页!

不过用a跳转的路由没有找到比较好的方法,只能在后端判断一个用来记录是否登录的一个标识是否存在,来进行权限控制。

# https://segmentfault.com/q/1010000009324431/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,198评论 19 139
  • 这篇文章介绍了Mobile BI(移动商务智能)使用过程中涉及的各种身份认证的方式,主要目的是对这些方式的原理进行...
    雨_树阅读 2,114评论 1 2
  • 今天修改项目的登陆认证问题,之前用的shiro+freemarker。后来项目改成了前后端分离,全部使用json进...
    廿陆小生阅读 1,120评论 0 2
  • 原文出处:单点登录原理与简单实现 一、单系统登录机制 1、http无状态协议 web应用采用browser/ser...
    程式怪客阅读 1,525评论 2 24
  • 一道一道的铁篱笆 活生生把这里隔成两个世界 人们在篱笆外边排上了很长很长的队 据说是去里边签证 一个洋大哥在篱笆里...
    桂博阅读 256评论 0 0