Rumah >pembangunan bahagian belakang >tutorial php >前后端分离的框架中,未认证跳转是怎么做的呢?

前后端分离的框架中,未认证跳转是怎么做的呢?

WBOY
WBOYasal
2016-10-22 00:14:262186semak imbas

在前后端分离的框架中,一般通过nginx的配置将后端的请求去后端对应的目录,然后前端的请求去找前端对应的目录。现在刚好碰到一个认证条状的功能,要实现的就是每个请求发过来不管是前端请求还是后端请求,先判断有没有登录,没有登录就跳转到登录首页。
1。一般认证判断是后端做的事情,页面跳转是前端做的事情,这两个步骤怎么给他结合起来呢。

  1. 前后端不分离的时候一般是在框架初始化的时候置一个钩子,判断有没有登录,没有登录就跳转。

  2. 我想分离后的方案应该是,后端依然对每个请求进行认证判断,只返回不跳转。 然后前端框架模块初始化都先请求下认证接口,如果认证未通过就跳转到登录页面。

麻烦有经验的友友,给下分离场景下这个认证该怎么做的意见哈。

回复内容:

在前后端分离的框架中,一般通过nginx的配置将后端的请求去后端对应的目录,然后前端的请求去找前端对应的目录。现在刚好碰到一个认证条状的功能,要实现的就是每个请求发过来不管是前端请求还是后端请求,先判断有没有登录,没有登录就跳转到登录首页。
1。一般认证判断是后端做的事情,页面跳转是前端做的事情,这两个步骤怎么给他结合起来呢。

  1. 前后端不分离的时候一般是在框架初始化的时候置一个钩子,判断有没有登录,没有登录就跳转。

  2. 我想分离后的方案应该是,后端依然对每个请求进行认证判断,只返回不跳转。 然后前端框架模块初始化都先请求下认证接口,如果认证未通过就跳转到登录页面。

麻烦有经验的友友,给下分离场景下这个认证该怎么做的意见哈。

前台端分离一般都是用json传输,假如是Json可以这样做。
验证成功时返回:{code:"成功",data:"要取的数据",info:null},
验证失败时返回:{code:"失败",data:null,info:"没有访问权限"}
前端用接收后自己判断code值,至于跳不跳转那就是前端自己的事咯。

我实现的方式是:

前端登录后,保存后端生成的token(后端可以用JWTredismysql保存,前端保存在localstoragecookie)。

前端每次请求需授权(登录)接口,判断token是否有效(包含是否过期),如果无效返回403,以及错误信息。前端使用一个Service基类(例如AdminService catch 403的异常,如果捕获到,路由到登录页面),或者写一个全局的过滤器,捕获403

前后端分离就在前端缓存一个登录状态,然后每次请求的时候带上这个状态码,后台判断是否过期,差不多就这样了

很简单吖,譬如说后台的项目,后台我们都知道只能登陆成功之后才能进入系统把,那么整个时候是怎么做认证的呢?

  1. 后端对所有过来的请求都做过滤,验证用户有没有登陆,如果又就继续不管他,如果没有登陆就让他直接跳转到登陆页面

  2. 对于前台来说,每一个路由跳转也要进行验证,比如:打开某一个页面之前向后台发送一个ajax用来验证,如果登陆显示页面如果没有就跳转到登陆页面

  3. 怎么验证,用户没有登陆成功的情况下,浏览器不写入cookie,登录成功之后就把用户的cookie保存到浏览器,用户的session保存到服务器,浏览器的cookie就是session的key

我们公司最近做前后端完全分离。具体办法很简单,比如有需要登录验证的页面,前端会直接请求后端。后端判断是否登录,如果登录了返回状态statussuccess,外加数据啥的。如果没有登录直接返回一个固定的状态,就是statusfail_401

如果该页面没有什么可以获取的数据,我们直接给个通用接口,进入页面就请求下接口,如果通过就留在当前页面,如果未通过就直接跳转。

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn