Maison >développement back-end >tutoriel php >前后端分离的框架中,未认证跳转是怎么做的呢?
在前后端分离的框架中,一般通过nginx的配置将后端的请求去后端对应的目录,然后前端的请求去找前端对应的目录。现在刚好碰到一个认证条状的功能,要实现的就是每个请求发过来不管是前端请求还是后端请求,先判断有没有登录,没有登录就跳转到登录首页。
1。一般认证判断是后端做的事情,页面跳转是前端做的事情,这两个步骤怎么给他结合起来呢。
前后端不分离的时候一般是在框架初始化的时候置一个钩子,判断有没有登录,没有登录就跳转。
我想分离后的方案应该是,后端依然对每个请求进行认证判断,只返回不跳转。 然后前端框架模块初始化都先请求下认证接口,如果认证未通过就跳转到登录页面。
麻烦有经验的友友,给下分离场景下这个认证该怎么做的意见哈。
在前后端分离的框架中,一般通过nginx的配置将后端的请求去后端对应的目录,然后前端的请求去找前端对应的目录。现在刚好碰到一个认证条状的功能,要实现的就是每个请求发过来不管是前端请求还是后端请求,先判断有没有登录,没有登录就跳转到登录首页。
1。一般认证判断是后端做的事情,页面跳转是前端做的事情,这两个步骤怎么给他结合起来呢。
前后端不分离的时候一般是在框架初始化的时候置一个钩子,判断有没有登录,没有登录就跳转。
我想分离后的方案应该是,后端依然对每个请求进行认证判断,只返回不跳转。 然后前端框架模块初始化都先请求下认证接口,如果认证未通过就跳转到登录页面。
麻烦有经验的友友,给下分离场景下这个认证该怎么做的意见哈。
前台端分离一般都是用json传输,假如是Json可以这样做。
验证成功时返回:{code:"成功",data:"要取的数据",info:null},
验证失败时返回:{code:"失败",data:null,info:"没有访问权限"}
前端用接收后自己判断code值,至于跳不跳转那就是前端自己的事咯。
我实现的方式是:
前端登录后,保存后端生成的token
(后端可以用JWT
或redis
、mysql
保存,前端保存在localstorage
或cookie
)。
前端每次请求需授权
(登录)接口,判断token
是否有效(包含是否过期),如果无效返回403,以及错误信息。前端使用一个Service基类
(例如AdminService
catch
403
的异常,如果捕获到,路由到登录页面),或者写一个全局的过滤器
,捕获403
。
前后端分离就在前端缓存一个登录状态,然后每次请求的时候带上这个状态码,后台判断是否过期,差不多就这样了
很简单吖,譬如说后台的项目,后台我们都知道只能登陆成功之后才能进入系统把,那么整个时候是怎么做认证的呢?
后端对所有过来的请求都做过滤,验证用户有没有登陆,如果又就继续不管他,如果没有登陆就让他直接跳转到登陆页面
对于前台来说,每一个路由跳转也要进行验证,比如:打开某一个页面之前向后台发送一个ajax用来验证,如果登陆显示页面如果没有就跳转到登陆页面
怎么验证,用户没有登陆成功的情况下,浏览器不写入cookie,登录成功之后就把用户的cookie保存到浏览器,用户的session保存到服务器,浏览器的cookie就是session的key
我们公司最近做前后端完全分离。具体办法很简单,比如有需要登录验证的页面,前端会直接请求后端。后端判断是否登录,如果登录了返回状态status
为success
,外加数据啥的。如果没有登录直接返回一个固定的状态,就是status
为fail_401
。
如果该页面没有什么可以获取的数据,我们直接给个通用接口,进入页面就请求下接口,如果通过就留在当前页面,如果未通过就直接跳转。