2019-08-14

首先介绍一下什么是JSON Web Token(JWT)?

官方文档是这样解释的:JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且独立的方式,可以在各方之间作为JSON对象安全地传输信息。此信息可以通过数字签名进行验证和信任。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。

虽然JWT可以加密以在各方之间提供保密,但只将专注于签名令牌。签名令牌可以验证其中包含的声明的完整性,而加密令牌则隐藏其他方的声明。当使用公钥/私钥对签署令牌时,签名还证明只有持有私钥的一方是签署私钥的一方。

通俗来讲,JWT是一个含签名并携带用户相关信息的加密串,页面请求校验登录接口时,请求头中携带JWT串到后端服务,后端通过签名加密串匹配校验,保证信息未被篡改。校验通过则认为是可靠的请求,将正常返回数据。

什么情况下使用JWT比较适合?

授权:这是最常见的使用场景,解决单点登录问题。因为JWT使用起来轻便,开销小,服务端不用记录用户状态信息(无状态),所以使用比较广泛;

信息交换:JWT是在各个服务之间安全传输信息的好方法。因为JWT可以签名,例如,使用公钥/私钥对儿 - 可以确定请求方是合法的。此外,由于使用标头和有效负载计算签名,还可以验证内容是否未被篡改。

---------------------

版权声明:本文为CSDN博主「Helon的博客」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_42873937/article/details/82460997

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是JJWT JJWT是一个提供端到端的JWT创建和验证的Java库。永远免费和开源(Apache Licen...
    艾纶_6460阅读 414评论 1 1
  • jwt: Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放...
    少年_2ddb阅读 202评论 1 2
  • Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((R...
    炮炮_06ac阅读 88评论 0 0
  • 数据加密的简介与种类: 简介:数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一...
    霹雳火_4617阅读 449评论 1 2
  • 1. 为什么要使用分布式锁? 变量A存在JVM1、JVM2、JVM3三个JVM(进程)内存中 变量A同时都会在JV...
    造一个大大的轮子阅读 311评论 0 0