access_token过期失效,refresh_token还在有效期内,刷新token后怎样继续原来的请求?

来源:6-3 SpringSecurityOAuth核心源码解析

之影

2019-02-17

老师您好,如果在access_token过期失效,refresh_token还在有效期内,发送请求后进入自定义
@Component
public class MyAuthenticationEntryPoint implements AuthenticationEntryPoint 的重写方法commence中,在方法里通过

MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
formData.add(“grant_type”, “refresh_token”);
formData.add(“refresh_token”, refreshToken);
HttpHeaders headers = new HttpHeaders();
headers.set(“Authorization”, this.getAuthorizationHeader(client_id, client_secret));
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
String url = “http://localhost:8888/oauth/token”;
Map<String, Object> map = this.postForMap(url, formData, headers)

这样发送了刷新token的请求,也拿到了新的access_token和refresh_token
下一步是在后台通过请求转发继续访问原来要访问的资源呢?还是把新token带到前端,前端接到新token再自动重新发起请求?
如果是后台自动请求转发,那request中携带的还是原来那个已经失效的token,怎样把新的token设置到request中,如果是让前端再次用新token发起请求,那应该怎样设计呢?
希望老师的解答,谢谢老师!

写回答

1回答

JoJo

2019-02-25

我们的做法是前端存token时,cookie过期时间和token有效期是一致的,这样token过期了从cookie中就拿不到了,拿不到了就刷token

0
0

Spring Security技术栈开发企业级认证与授权

Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全

2662 学习 · 1561 问题

查看课程