关于jwt在maven项目中的数据传递方式
在服务端中:
添加 JwtUtil 工具类 工具类使用需要的依赖是如下
<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.6.0</version> </dependency>
在yml配置文件中配置jwt
jwt:
config:
key: donghaoxin #令牌盐
ttl: 3600000 #过期时间
在启动类中把jwt交给Spring容器经行管理
@SpringBootApplication @EnableEurekaClient @MapperScan("com.jujiu.mapper") public class ServerApp { public static void main(String[] args) { SpringApplication.run(ServerApp.class); } @Bean public JwtUtil jwtUtil(){ return new JwtUtil(); } }
通过@AutoWired 注解注入jwt 经行操作
@Autowired private JwtUtil jwtUtil;
通过登录接口登录成功后
创建一个新的token
String token = jwtUtil.createJWT(user.getId() + "", user.getName(), "admin");
在需要令牌的接口中取出来实现接口的认证
//头部获取令牌 String token = request.getHeader("token"); if(token!=null){ //解析出令牌中存储的数据 Claims claims = jwtUtil.parseJWT(token); //查看数据 角色名是否一致 if(claims!=null && "admin".equals(claims.get("roles"))){ //写接口代码 }
在vue前台中
登录成功后将后台登录成功的token数据传到前台
localStorage.setItem("token",res.data.data)
在需要token的vue接口经行以下操作
data() { return {
list:[], token:"" } }, created() { this.token = localStorage.getItem("token"); alert(this.token);//获取token的创建必须在其他元素之前 this.getlist(); }, methods: { getlist() {//员工列表 axios.get("http://localhost:9001/ddd/dddlist",{ headers:{ "token":this.token } }).then(res => { console.log(res); this.list = res.data.data }) }
结果数据可以成功显示