前后分离
用户认证信息使用UserTokenManager进行管理,hsweb默认提供了基于sessionIdtoken实现,如果在需要前后分离,可以自行拓展UserTokenGeneratorUserTokenParser

自定义Token策略

  1. 1.
    自定义UserTokenGenerator
MyUserTokenGenerator.java
1
@Component
2
public class MyUserTokenGenerator implements UserTokenGenerator {
3
4
private int timeout = 30 * 60 * 1000;
5
6
@Override
7
public String getSupportTokenType() {
8
// 登录时,请求参数为 token_type = token 时,此配置生效
9
return "token";
10
}
11
12
@Override
13
public GeneratedToken generate(Authentication authentication) {
14
String token = IDGenerator.MD5.generate();
15
16
return new GeneratedToken() {
17
@Override
18
public Map<String, Object> getResponse() {
19
//返回给前端的参数,前端拿到此参数后自行处理
20
return Collections.singletonMap("token", token);
21
}
22
23
@Override
24
public String getToken() {
25
return token;
26
}
27
28
@Override
29
public int getTimeout() {
30
// token 超时时间,超过时间没有请求时,自动失效
31
return timeout;
32
}
33
};
34
}
35
}
Copied!
2. 自定义UserTokenParser
MyUserTokenParser.java
1
@Component
2
public class MyUserTokenParser implements UserTokenParser {
3
@Override
4
public ParsedToken parseToken(HttpServletRequest request) {
5
//获取参数中的token
6
String token = request.getParameter("token");
7
8
if(StringUtils.isEmpty(token))return null;
9
10
return () -> token;
11
}
12
}
Copied!
3. 在登录时,多传入一个参数: token_type=token
Last modified 2yr ago
Copy link