zoukankan      html  css  js  c++  java
  • 基于前后端考虑的鉴权

    后端层面

    • 前端登录成功之后,后端拿到useID,之后后端生成一个随机的密钥,密钥+useId来生成签名(token)返回给前端,同时把Jti(JWT id)存在redis里面(后端每次都随机生成密钥提高了安全性,jti存储在redis里面提高了读取速度)
    • 前端带token去请求,后台decode token 得到jti,拿到redis里面查是否有对应的jti,如果有就认为是合法的

    前端层面

    前端拿到token的存储有三种方式

    1. sessionStorage ,浏览器关闭就没了。

    2. 存 localstorage 就一直都在,后端返回过期标识时前端主动清除

    3. 存cookie的话,后端可以过期主动清除cookie, 前端在此过程中主要配合跳转到登录页就行

    对于vue,为解决浏览器刷新路由重置的问题

    拿到token后要将其保存到sessionStorage,根组件的created钩子负责检查本地是否已有token,如果有则无需登录直接用该token获取权限并初始化,如果token有效且当前路由有权访问,将加载路由组件并正确展现;若当前路由无权访问将按路由设置跳转404;如果token失效,后端应返回4xx状态码,前端统一为axios实例添加错误拦截器,遇到4xx状态码执行退出操作,清除sessionStorage数据并跳转到登录页,让用户重新登录。

  • 相关阅读:
    android 网络 post get
    java 命名规范
    android 判断service是否开启
    android 无线连接eclipse
    eclipse jar java.lang.NoClassDefFoundError
    eclipse 默认 utf8
    timer timetask handler
    android 自定义动画按钮
    设计网站
    java 分解arraylist中单个对象 的属性名与值
  • 原文地址:https://www.cnblogs.com/whkl-m/p/12911511.html
Copyright © 2011-2022 走看看