在文中给出的例子中,仅实现了登录认证,但是并没有设置token的过期时间,在实际应用中,token一般都需要设置过期时间。
如何设置token的过期时间
前文《Java面试常见问题:JWT是什么?》介绍过,JWT token的 payload 部分是一个json串,是要传递数据的一组声明,这些声明被JWT标准称为claims。
JWT标准里面定义的标准claim包括:
- iss(Issuser):JWT的签发主体;
- sub(Subject):JWT的所有者;
- aud(Audience):JWT的接收对象;
- exp(Expiration time):JWT的过期时间;
- nbf(Not Before):JWT的生效开始时间;
- iat(Issued at):JWT的签发时间;
- jti(JWT ID):是JWT的唯一标识。
除了以上标准声明以外,我们还可以自定义声明。以 com.auth0 为例,下面代码片段实现了生成一个带有过期时间的token.
String token = JWT.create()