JWT (上):认识 JSON Web Token
什么是 JWT? JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,作为JSON对象在各方之间安全的传递信息。这个信息可以通过数字签名进行验证并信任。JWTs 可以使用密钥(结合HMAC算法)或者 使用RSA、ECDSA加密的公钥私钥对进行签名。 尽管JWTs能够在各方之间也提供安全加密,但是仍专注于签名Token。当其他方隐藏了加密Token的某些声明时,签名Token可以验证声明的完整性。当Token使用公钥私钥对进行签名时,这个签名还能证明只有拥有私钥的一方才是签发它的一方。 什么时候使用 JWT ? 授权 :这是JWT最普遍的使用场景了。当用户登录之后,每次请求都包含JWT,允许用户访问那些只有携带token才能访问的路由、服务、资源。如今在单点登录中广泛使用了JWT,因为JWT体积小,且能够在不同域名之间被使用。 信息交换 :JWT是一种在各方之间安全传输信息的好方式。因为JWTs能够签名,比如使用公钥私钥对,你能够确定发送者的身份。另外,签名是使用header和payload计算而来,所以你也可以验证内容是否被篡改。 JWT的结构 jwt 包含三部分,之间以点(.)分隔 Header(头部) Payload(负载) Signature(签名) 一个典型的jwt如同下面这样: xxxxx.yyyyy.zzzzz