zoukankan      html  css  js  c++  java
  • JWT基础知识

    1> JWT定义

    JSON Web Token (JWT) 是一种开放的行业标准(RFC 7519),用于安全传送认证信息. 是目前流行的跨域认证的解决方案。

    2> JWT数据结构

    由三部分组成:

    Header(头部) . Payload(负载) . Signature(签名)

     2.1> Header部分:

    由Token类型 ("JWT") 和 算法名称 ("HS256"等)组成 ,再用Base 64对JSON编码。

     2.2>Payload部分:

    由声明部分组成。声明有三种类型:Registered,Public,Private

    • Registered Claims: 预定义的声明,建议不是强制。

      例如:

      iss ( Issuer ) 签发者

           exp ( Expiration Time) 过期时间

           sub ( Subject ) 所面向的用户

           aud ( Audience ) 接收者

    • Public Claims: 可自定义任何信息,一般添加用户相关信息或业务需要信息
    • Private Claims: 提供者和消费者所共同定义的声明

    注意:不要在JWT的payload或header中放置敏感信息

     2.3> Signature

    签名是用于验证消息在传递过程中有没有被更改,并且,对于使用私钥签名的token,它还可以验证JWT的发送方是否为它所称的发送方。

    附上官网用于校验JWT内容  https://jwt.io/

    3> Cookie认证过程与JWT区别

    • Cookie认证
    1. 用户携带用户名和密码请求访问
    2. 服务器校验成功后,在session中保存相关数据(用户,角色,登录时间等相关信息)
    3. 服务器向用户返回一个session_id,写入cookie
    4. 用户每次请求都要通过cookie,将session_id传到服务器
    5. 服务器通过session_id,找到前期保存数据得知用户身份
    • JWT认证

    1. 用户携带用户名和密码请求访问
    2. 服务器校验用户凭据
    3. 应用提供一个token给客户端
    4. 客户端存储token,并且在随后的每一次请求中都带着它
    5. 服务器校验token并返回数据

    Token认证优点:

    1.支持跨域:Cookie是不允许跨域访问。

    2.无状态:Token机制不需要存储服务端存储任何状态。

    Token认证缺点:

     1.无法在使用过程中废止某个 token,或者更改 token 的权限

  • 相关阅读:
    Delphi制作带图标的弹出式选单 DELPHI
    在DBGrid中实现Copy、Paste功能 DELPHI
    使用stringgrid的例子 DELPHI
    取得某一dll所有输出函数名 DELPHI
    HDOJ 2512 一卡通大冒险
    POJ 2533 Longest Ordered Subsequence
    UVA 10795 A Different Task
    HDOJ 1505 City Game
    HDOJ 1864 最大报销额
    HDOJ 1421 搬寝室
  • 原文地址:https://www.cnblogs.com/sword88/p/11543155.html
Copyright © 2011-2022 走看看