前后端分离的框架中,未认证跳转是怎么做的呢?
在前后端分离的框架中,一般通过nginx的配置将后端的请求去后端对应的目录,然后前端的请求去找前端对应的目录。现在刚好碰到一个认证条状的功能,要实现的就是每个请求发过来不管是前端请求还是后端请求,先判断有没有登录,没有登录就跳转到登录首页。
1。一般认证判断是后端做的事情,页面跳转是前端做的事情,这两个步骤怎么给他结合起来呢。
前后端不分离的时候一般是在框架初始化的时候置一个钩子,判断有没有登录,没有登录就跳转。
我想分离后的方案应该是,后端依然对每个请求进行认证判断,只返回不跳转。 然后前端框架模块初始化都先请求下认证接口,如果认证未通过就跳转到登录页面。
麻烦有经验的友友,给下分离场景下这个认证该怎么做的意见哈。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我实现的方式是:
前端登录后,保存后端生成的
token
(后端可以用JWT
或redis
、mysql
保存,前端保存在localstorage
或cookie
)。前端每次请求需
授权
(登录)接口,判断token
是否有效(包含是否过期),如果无效返回403,以及错误信息。前端使用一个Service基类
(例如AdminService
catch
403
的异常,如果捕获到,路由到登录页面),或者写一个全局的过滤器
,捕获403
。前台端分离一般都是用json传输,假如是Json可以这样做。
验证成功时返回:{code:"成功",data:"要取的数据",info:null},
验证失败时返回:{code:"失败",data:null,info:"没有访问权限"}
前端用接收后自己判断code值,至于跳不跳转那就是前端自己的事咯。
前后端分离就在前端缓存一个登录状态,然后每次请求的时候带上这个状态码,后台判断是否过期,差不多就这样了
我们公司最近做前后端完全分离。具体办法很简单,比如有需要登录验证的页面,前端会直接请求后端。后端判断是否登录,如果登录了返回状态
status
为success
,外加数据啥的。如果没有登录直接返回一个固定的状态,就是status
为fail_401
。如果该页面没有什么可以获取的数据,我们直接给个通用接口,进入页面就请求下接口,如果通过就留在当前页面,如果未通过就直接跳转。