在前后端分离的框架中,一般通过nginx的配置将后端的请求去后端对应的目录,然后前端的请求去找前端对应的目录。现在刚好碰到一个认证条状的功能,要实现的就是每个请求发过来不管是前端请求还是后端请求,先判断有没有登录,没有登录就跳转到登录首页。
1。一般认证判断是后端做的事情,页面跳转是前端做的事情,这两个步骤怎么给他结合起来呢。
前后端不分离的时候一般是在框架初始化的时候置一个钩子,判断有没有登录,没有登录就跳转。
我想分离后的方案应该是,后端依然对每个请求进行认证判断,只返回不跳转。 然后前端框架模块初始化都先请求下认证接口,如果认证未通过就跳转到登录页面。
麻烦有经验的友友,给下分离场景下这个认证该怎么做的意见哈。
我实现的方式是:
前端登录后,保存后端生成的
token
(后端可以用JWT
或redis
、mysql
保存,前端保存在localstorage
或cookie
)。前端每次请求需
授权
(登录)接口,判断token
是否有效(包含是否过期),如果无效返回403,以及错误信息。前端使用一个Service基类
(例如AdminService
catch
403
的异常,如果捕获到,路由到登录页面),或者写一个全局的过滤器
,捕获403
。