JWT

作者: 乌鲁木齐001号程序员 | 来源:发表于2020-07-10 14:17 被阅读0次

    JWT | 简介

    • 全称:JSON Web Token;
    • 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 的防御,会导致一些错误;

    相关文章

      网友评论

          本文标题:JWT

          本文链接:https://www.haomeiwen.com/subject/axfucktx.html