美文网首页
JWT -- Json Web Token

JWT -- Json Web Token

作者: 芝麻香油 | 来源:发表于2017-09-28 23:33 被阅读0次

什么是 JWT?

JWT(Json Web Token),是一个开源biaozhun,轻量,携带者用户信息的 json 对象,安全的进行服务器端与客户端交互。

因为 JWT 轻量,所以可以放在 Http Header 里,在服务器与客户端之间快速交互;同时,可以将用户名等基本不涉及隐私的用户信息放在 JWT 中,不用再次从数据库中获取。

什么时候使用 JWT?

  • 需要认证:用户根据 username,password 登录后,使用 JWT 返回一个 Token 给客户端,客户端在请求的时候将 Token 放在 Http Header 里

JWT 详解

  • 基本结构

    • Header
    • Payload
    • Signature
  • Header
    用于描述该 JWT 的最基本信息,例如算法。

    {
      "alg" : "HS256"
    }
    

    这里我们说明这个 JWT 的算法是 HS256。同时,对于 Header 我们也要进行 Base64 编码。

  • PayLoad
    负载中由程序员自己定义的一些信息,例如:

    {
      "username": "pm2017",
      "role": "PROJECT_MANAGER",
      "privileges": [
      "RETRIVE_USER"
      ],
      "exp": 1506609371
    }
    

这里我们设置 PayLoad 的内容有 username、role、privileges,以及 exp 过期时间。

  • Signature
    将 Header 和 PayLoad 编码后的字符串用 . 连接在一起,并使用 HS256(Header 中设定的算法)算法与服务端存储的秘钥 secret 一起进行加密,得到的值为 Signature

所以,完整的 JWT 是:header.payload.signature

总结

  1. 缺点
    • 发布后在其有效期内一直有效,只能等过期
  2. 优点
    • JWT 构成简单,字节占用小,便于传输
    • 不会在服务端保存信息,易于扩展
  3. 安全相关
    • 不应该在 JWT 的 Payload 部分存放敏感信息
    • 保存好 secret
  4. 使用 JWT 后,服务端会验证 Token,验证通过会返回相应的资源。整个流程如下图:

相关文章

  • 浅析JWT

    1.JWT(JSON Web Token) JSON Web Token (缩写JWT) 是目前最流行的跨域认证解...

  • 身份验证之JWT

    什么是(JWT)JSON Web Token ? 官网介绍JSON Web Token(JWT)是一个开放标准(R...

  • JSON Web Token

    JSON Web Token (JWT)是一种基于 token 的认证方案。 JSON Web Token 的结构...

  • Laravel 5.2 JWT多用户认证

    Json Web Token JWT代表Json Web Token.JWT能有效地进行身份验证并连接前后端。 降...

  • Spring Boot使用JWT和自定义注解完成用户登录认证和权

    0x00 JWT(JSON Web Token) JWT的全称是JSON Web Token,它是一种紧凑的、UR...

  • JWT简介

    JSON Web Token (JWT) 参考资料:Introduction to JSON Web Tokens...

  • JSON Web Token

    What is JSON Web Token? JSON Web Token (JWT)是一个开放标准(RFC 7...

  • JWT token认证

    本文主要讲述两方面的内容1JSON Web Token(JWT)的介绍说明2 JSON Web Token(JWT...

  • jwt教程

    未完待续 JWT是什么? JWT是JSON Web Token的缩写,即JSON Web令牌。 JWT规范 中对其...

  • JWT 概述与代码实现

    一、什么是JSON Web Token? JSON Web Token(JWT)是一个开放标准(RFC7519),...

网友评论

      本文标题:JWT -- Json Web Token

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