您的位置:首页技术文章
文章详情页

javascript - 关于前后分离页面登录拦截问题

【字号: 日期:2022-11-10 13:00:39浏览:46作者:猪猪

问题描述

项目是前后分离,后端只给前端接口,每一个接口带token,现在有一些需要登录才能进去的页面,前端如何拦截。比如:由A页面 通过A标签跳转到 B页面(B页面需要登录才能进去)。我现在做法是进到B页面,发送ajax请求,后台返回状态才做跳转到登录页面,现在问题是我已经进到B页面才做判断很不合理。

问题解答

回答1:

可以考虑点击a标签的时候先发ajax请求再决定往哪跳转?

回答2:

可以自己封装一个ajax请求,单独判断登录状态,未登录跳转登录,登录直接返回数据

回答3:

写一个公共的js 在里面写页面加载函数 你需要登录授权才能访问的页面就引用 然后在里面写逻辑判断

回答4:

前端不做拦截,服务器端做拦截。前端拦截的话,只能在B页面做,你考虑一下拼写url进入呢?B页面访问接口尝试拿userinfo,拿到就是登陆了,没拿到就没登录。

回答5:

token一般都有过期时间,用localstorage保存token的时候带上一个过期时间,页面跳转的时候先判断token是否过期,过期了就跳登录页,没有就继续。如果是单页的应用这个就很好解决,如果不是单页的话,就写到一个公共js里。

回答6:

肯定会由用户某个交互动作 导致 跳转到第二个页面的, 再跳转之前 进行登录验证, 没有登录就让其登录(或者注册), 登录(注册)肯定要 封装起来的, 封装的时候 预留 登录后的 成功回调和 注册成功 后的回调, 在回调函数中再做跳转 到B页面

回答7:

这种两种方法解决:1、服务端做验证 既然是要登录才能进去的页面 必然会涉及到用户权限 在B页面发的ajax请求中有token 后端做token过期的验证 判断是否有权限 报错统一返回 前端写一个公共方法验证没有权限的错误信息 (这种方式要做到响应的接口上 比较保险)2、前端在每个页面写个看门狗js,判断存储用户信息中的过期时间 在做跳转。

我看楼主的需求是想在点击的时候做判断是否跳转 可以把a标签换成点击函数 在函数中判断 使用window.location.href = url 的方式跳转页面

回答8:

lz前端框架用的什么? 我知道vue_router中有钩子函数可以实现, 在router.beforeEach的时候判断是否登录,如果没有登录就去登录,如果登录就直接next()

标签: JavaScript
相关文章: