SpringBoot+vue前端后端如何在登录后请求头上加上token
时间: 2024-03-27 17:36:34 浏览: 184
在 Spring Boot 后端,我们可以使用 Spring Security 框架来实现基于 token 的认证和授权。具体步骤如下:
1. 在用户登录成功后,生成一个 token 并返回给前端。
2. 前端在后续的请求中,在请求头中添加一个名为 Authorization 的字段,值为 "Bearer " + token。
3. 后端在接收到请求后,从请求头中解析出 token。
4. 后端使用 Spring Security 的 filter 对 token 进行验证,判断该请求是否有权限访问。
下面是 Spring Boot 后端的示例代码:
1. 在登录成功后,生成一个 JWT token 并返回给前端
```java
// 生成 JWT token
String token = Jwts.builder()
.setSubject(user.getUsername())
.setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME))
.signWith(SignatureAlgorithm.HS512, SECRET)
.compact();
// 将 token 返回给前端
response.addHeader(HEADER_STRING, TOKEN_PREFIX + token);
```
2. 前端在请求头中添加 Authorization 字段
```javascript
// 在请求头中添加 Authorization 字段
axios.defaults.headers.common['Authorization'] = 'Bearer ' + token;
```
3. 后端从请求头中解析出 token
```java
// 从请求头中获取 token
String header = request.getHeader(HEADER_STRING);
if (header == null || !header.startsWith(TOKEN_PREFIX)) {
chain.doFilter(request, response);
return;
}
String token = header.replace(TOKEN_PREFIX, "");
```
4. 后端使用 Spring Security 的 filter 对 token 进行验证
```java
// 使用 Spring Security 的 filter 对 token 进行验证
Authentication authentication = new JwtAuthenticationToken(token);
SecurityContextHolder.getContext().setAuthentication(authentication);
chain.doFilter(request, response);
```
阅读全文