Skip to content

Commit 9ab8438

Browse files
committed
feat(system/client): 添加双token认证配置
1 parent f361a38 commit 9ab8438

7 files changed

Lines changed: 20 additions & 16 deletions

File tree

continew-server/src/main/resources/config/application-dev.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ server:
1212
spring.datasource:
1313
type: com.zaxxer.hikari.HikariDataSource
1414
# 请务必提前创建好名为 continew_admin 的数据库,如果使用其他数据库名请注意同步修改 DB_NAME 配置
15-
url: jdbc:p6spy:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:continew_admin}?serverTimezone=Asia/Shanghai&useSSL=true&useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&autoReconnect=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
15+
url: jdbc:p6spy:mysql://${DB_HOST:hw.luoqiz.top}:${DB_PORT:3396}/${DB_NAME:continew_admin_tenant5}?serverTimezone=Asia/Shanghai&useSSL=true&useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&autoReconnect=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
1616
username: ${DB_USER:root}
17-
password: ${DB_PWD:123456}
17+
password: ${DB_PWD:!qaz2wsX}
1818
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
1919
# # PostgreSQL 配置
2020
# url: jdbc:p6spy:postgresql://${DB_HOST:127.0.0.1}:${DB_PORT:5432}/${DB_NAME:continew_admin}?options=-c%20TimeZone=Asia/Shanghai&sslmode=prefer&channelBinding=prefer&stringtype=unspecified
@@ -46,13 +46,13 @@ spring.data:
4646
## Redis 配置(单机模式)
4747
redis:
4848
# 地址
49-
host: ${REDIS_HOST:127.0.0.1}
49+
host: ${REDIS_HOST:hw.luoqiz.top}
5050
# 端口(默认 6379)
51-
port: ${REDIS_PORT:6379}
51+
port: ${REDIS_PORT:6397}
5252
# 密码(未设置密码时请注释掉)
53-
password: ${REDIS_PWD:123456}
53+
password: ${REDIS_PWD:luoqiz666}
5454
# 数据库索引
55-
database: ${REDIS_DB:0}
55+
database: ${REDIS_DB:15}
5656
# 连接超时时间
5757
timeout: 10s
5858
# 是否开启 SSL

continew-system/src/main/java/top/continew/admin/auth/AbstractLoginHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ protected LoginResp authenticate(UserDO user, ClientResp client) {
141141
extraData.put(AuthConstants.LOGIN_USER, userContext);
142142
loginParameter.setExtraData(extraData);
143143
UserContextHolder.setContext(userContext);
144-
return LoginHandler.bulderLoginResp(loginParameter, userContext, client);
144+
return LoginHandler.buildLoginResp(loginParameter, userContext, client);
145145
}
146146

147147
/**

continew-system/src/main/java/top/continew/admin/auth/LoginHandler.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,12 @@ public interface LoginHandler<T extends LoginReq> {
8181
* @param client 客户端信息
8282
* @return
8383
*/
84-
static LoginResp bulderLoginResp(SaLoginParameter loginParameter, UserContext userContext, ClientResp client) {
84+
static LoginResp buildLoginResp(SaLoginParameter loginParameter, UserContext userContext, ClientResp client) {
8585
StpUtil.login(userContext.getId(), loginParameter);
86-
if (client.getIsEnableRefreshToken()) {
86+
if (Boolean.TRUE.equals(client.getIsEnableRefreshToken())) {
8787
// 刷新令牌设置的有效时长
88-
long refreshExpiresIn = client.getRefreshTokenTimeout() > 0L
89-
? client.getRefreshTokenTimeout()
90-
: client.getTimeout();
88+
long refreshExpiresIn = (client.getRefreshTokenTimeout() != null && client.getRefreshTokenTimeout() > 0L)
89+
? client.getRefreshTokenTimeout() : client.getTimeout();
9190
String refreshToken = SaTempUtil.createToken(userContext.getId(), refreshExpiresIn, false);
9291
// 将生成的token保存一份,方便刷新token时删除先前的token
9392
loginParameter.setToken(StpUtil.getTokenValue());

continew-system/src/main/java/top/continew/admin/auth/controller/AuthController.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import io.swagger.v3.oas.annotations.tags.Tag;
2626
import jakarta.servlet.http.HttpServletRequest;
2727
import jakarta.validation.Valid;
28+
import jakarta.validation.constraints.NotBlank;
2829
import lombok.RequiredArgsConstructor;
2930
import me.zhyd.oauth.request.AuthRequest;
3031
import me.zhyd.oauth.utils.AuthStateUtils;
@@ -75,7 +76,7 @@ public LoginResp login(@RequestBody @Valid LoginReq req, HttpServletRequest requ
7576
@SaIgnore
7677
@Operation(summary = "刷新token", description = "刷新token")
7778
@PostMapping("/refreshToken")
78-
public LoginResp refreshToken(String refreshToken) {
79+
public LoginResp refreshToken(@RequestParam("refreshToken") @NotBlank String refreshToken) {
7980
return authService.refreshToken(refreshToken);
8081
}
8182

@@ -95,8 +96,8 @@ public Object logout() {
9596
public SocialAuthAuthorizeResp authorize(@PathVariable @EnumValue(value = SocialSourceEnum.class, message = "第三方平台无效") String source) {
9697
AuthRequest authRequest = authRequestFactory.getAuthRequest(source);
9798
return SocialAuthAuthorizeResp.builder()
98-
.authorizeUrl(authRequest.authorize(AuthStateUtils.createState()))
99-
.build();
99+
.authorizeUrl(authRequest.authorize(AuthStateUtils.createState()))
100+
.build();
100101
}
101102

102103
@Log(ignore = true)

continew-system/src/main/java/top/continew/admin/auth/model/resp/DoubleTokenLoginResp.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,15 @@
1818

1919
import io.swagger.v3.oas.annotations.media.Schema;
2020
import lombok.Data;
21+
import lombok.EqualsAndHashCode;
2122
import lombok.experimental.SuperBuilder;
2223

2324
/**
2425
* 双token模式
2526
*/
2627
@Data
2728
@SuperBuilder
29+
@EqualsAndHashCode(callSuper = true)
2830
public class DoubleTokenLoginResp extends LoginResp {
2931

3032
/**

continew-system/src/main/java/top/continew/admin/auth/model/resp/SingleTokenLoginResp.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,15 @@
1818

1919
import io.swagger.v3.oas.annotations.media.Schema;
2020
import lombok.Data;
21+
import lombok.EqualsAndHashCode;
2122
import lombok.experimental.SuperBuilder;
2223

2324
/**
2425
* 单token模式,只有访问的token
2526
*/
2627
@Data
2728
@SuperBuilder
29+
@EqualsAndHashCode(callSuper = true)
2830
public class SingleTokenLoginResp extends LoginResp {
2931

3032
/**

continew-system/src/main/java/top/continew/admin/auth/service/impl/AuthServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ public LoginResp refreshToken(String refreshToken) {
144144
ClientResp client = clientService.getByClientId(userContext.getClientId());
145145
// 删除原先的 Token
146146
StpUtil.kickoutByTokenValue(loginParameter.getToken());
147-
LoginResp loginResp = LoginHandler.bulderLoginResp(loginParameter, userContext, client);
147+
LoginResp loginResp = LoginHandler.buildLoginResp(loginParameter, userContext, client);
148148
// 删除原先的 Refresh token
149149
SaTempUtil.deleteToken(refreshToken);
150150
return loginResp;

0 commit comments

Comments
 (0)