介绍
现代的认证或者授权的解决方案已经将token引入到了协议当中。token是 一种特殊的数据片段,用来授权用户执行特定的操作,或允许客户获得关于授权过程的额外信息(然后完成)。换句话说,令牌是允许授权过程执行的信息。该信息 是否可由客户端(或授权服务器以外的任何方)读取或解析,由该实现定义。重要的是:客户端获取这些信息,然后用来获取特定的资源。JSON Web Token(JWT)规范定义了一种代表通用的token信息的方式。
JWT简短回顾
JWT定义了可以表示与认证/授权过程有关的某些共同信息的方式。顾名思义,数据格式是JSON。JWT拥有subject,issuer,过期时间等通用属性。JWT与其他规范(如JSON Web签名(JWS)和JSON Web加密(JWE))结合使用时会变得非常有用。 这些规范不仅提供了授权token通常需要的所有信息,还提供了一种验证token内容的方法,以便它不会被篡改(JWS)和一种加密信息的方法,以使其对于客户端(JWE)。数据格式(及其他优点)的简单性已经帮助JWT成为最常见的token类型之一。
Token类型
为了这篇文章的目的,我们将重点讨论两种最常见的token类型:access token和refresh token。
- Access Token携带了直接访问资源的必要信息。换句话说,当客户端将access token传给管理资源的服务器时,该服务器可以使用token中包含的信息来决定是否授权给客户端。access token通常有一个过期时间,而且通常时间非常短暂。