JWT

JWT | 简介

  • 全称:JSON Web Token;
  • JWT 主要用于身份认证和信息加密;
  • JWT 是一个简单而有效的安全认证方式;

JWT 身份认证

JWT
JWT 身份认证.png

JWT 进阶特性

  • JWT 可以携带数据进行传输,方便后端使用;
  • JWT 可以对传输数据进行签名,增强安全性;

JWT 颁发流程

  • 用户登录;
  • 登录成功,用 randomKey 和 userId 生成 Token 返回可客户端;
  • 客户端把 Token 带在 Header 的 Authorization 字段中,通过 Zuul 访问其他微服务的时候,经过自定义的 JWTFilter 完成身份验证逻辑:
    • 判断请求头的 Authorization 字段中是否带有 Token;
    • 判断 Token 是否过期;
    • 从 Token 中解析出 randomKey 和 userId;
    • 判断是否需要验签,需要的话获得验签的算法;
    • 判断解析出来的 userId 是否有效;
    • 如果都没问题,放行请求;如果有问题,直接返回给客户端;

跨域资源共享 | CORS

  • Cross-origin Resource Sharing
  • 前端和后端是两个独立部署的服务,拥有各自的域名,不同域名之间的服务相互访问资源;
  • 这是 HTTP 协议规定的安全策略,限定了谁可以访问资源,以什么样的形式访问;
  • 比如一个前后端分离的服务:
    • 前端: node + vue -> admin.meetingfilm.com
    • 后端: springboot -> backend.meetingfilm.com
跨域
  • 当一个请求的协议、域名和端口三者之一不同即为跨域;
  • 跨域的时候,默认是不能相互访问的;只有当后端,就是被访问的域,发现有一个域要来分享我的资源,后端需要提前做申请,源地址才有可能取到目标地址的资源;
跨域策略配置在代码中的缺陷
  • 如果出现跨域策略不足的情况,需要修改代码,重新部署;
  • 一般建议将跨域的策略配置在 Nginx 中;

Eureka Server | 安全问题

Spring Security
  • Spring Cloud 默认可以使用 Spring Security 解决身份认证;
  • Eureka Server 可以使用 Spring Security 建立安全连接;
  • Spring Cloud 新版增加了 CSRF 的防御,会导致一些错误;

相关文章:

猜你喜欢
  • 2021-12-20
  • 2022-12-23
  • 2021-06-15
  • 2022-12-23
  • 2021-12-12
相关资源
相似解决方案