?了解jwt,jjwt
什么是jwt
JSON Web Token( JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用 户和服务器之间传递安全可靠的信息。其中 JWT 中可以包含用户信息。
什么是jjwt
JJWT 是一个提供端到端的JWT创建和验证的Java库。永远免费和开源(Apache License,版本2.0),JJWT很容易使用和理解。可以使用jjwt实现jwt.
?jjwt快速入门
1.pom包中引入依赖
(查看自己电脑jdk版本,8版本不需要下面的依赖8中包含EE,SE? ?9版本需要下面依赖9中只有SE)
<dependencies>
<!--jwt令牌-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.6.0</version>
</dependency>
<!--jdk9需要的-->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
2?创建普通测试类 TestJwt?,用于生成 token??
(点击main方法执行,生成一个令牌,每次执行的结果都不一样,因为创建的时间不同)
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class TestJwt {
public static void main(String[] args) {
String token=createJwt();
System.out.println("生成的令牌"+token);
}
// 生成jwt令牌(token)
public static String createJwt(){
JwtBuilder builder= Jwts.builder();
builder.setId("1111")//用户id
.setSubject("admin") //主题:用户名
.setIssuedAt(new Date()) //签发事件
.signWith(SignatureAlgorithm.HS256,"xxxxx");//签名密钥 xxxxx自己知道不要泄密
return builder.compact();//开始生成jwt令牌
}
}
|