mirror of
https://github.com/vran-dev/databasir.git
synced 2025-08-09 12:38:20 +08:00
feat: integrate frontend resources (#6)
This commit is contained in:
@@ -9,7 +9,7 @@ import lombok.RequiredArgsConstructor;
|
||||
@Getter
|
||||
public enum DomainErrors implements DatabasirErrors {
|
||||
REFRESH_TOKEN_EXPIRED("X_0001", "refresh token expired"),
|
||||
ACCESS_TOKEN_REFRESH_INVALID("X_0002", "invalid refresh token operation"),
|
||||
INVALID_REFRESH_TOKEN_OPERATION("X_0002", "invalid refresh token operation"),
|
||||
|
||||
NOT_SUPPORT_DATABASE_TYPE("A_10000", "不支持的数据库类型, 请检查项目配置"),
|
||||
PROJECT_NOT_FOUND("A_10001", "项目不存在"),
|
||||
|
@@ -32,7 +32,7 @@ public class LoginService {
|
||||
|
||||
public AccessTokenRefreshResponse refreshAccessTokens(AccessTokenRefreshRequest request) {
|
||||
LoginPojo login = loginDao.selectByRefreshToken(request.getRefreshToken())
|
||||
.orElseThrow(DomainErrors.ACCESS_TOKEN_REFRESH_INVALID::exception);
|
||||
.orElseThrow(DomainErrors.INVALID_REFRESH_TOKEN_OPERATION::exception);
|
||||
// refresh-token 已过期
|
||||
if (login.getRefreshTokenExpireAt().isBefore(LocalDateTime.now())) {
|
||||
throw DomainErrors.REFRESH_TOKEN_EXPIRED.exception();
|
||||
@@ -41,9 +41,15 @@ public class LoginService {
|
||||
if (login.getAccessTokenExpireAt().isAfter(LocalDateTime.now())) {
|
||||
log.warn("invalid access token refresh operation: request = {}, login = {}", request, login);
|
||||
loginDao.deleteByUserId(login.getUserId());
|
||||
throw DomainErrors.ACCESS_TOKEN_REFRESH_INVALID.exception();
|
||||
throw DomainErrors.INVALID_REFRESH_TOKEN_OPERATION.exception();
|
||||
}
|
||||
UserPojo user = userDao.selectById(login.getUserId());
|
||||
|
||||
// refresh-token 对应的用户已被删除
|
||||
UserPojo user = userDao.selectOptionalById(login.getUserId())
|
||||
.orElseThrow(() -> {
|
||||
log.warn("user not exists but refresh token exists for " + login.getRefreshToken());
|
||||
return DomainErrors.INVALID_REFRESH_TOKEN_OPERATION.exception();
|
||||
});
|
||||
String accessToken = jwtTokens.accessToken(user.getEmail());
|
||||
LocalDateTime accessTokenExpireAt = jwtTokens.expireAt(accessToken);
|
||||
loginDao.updateAccessToken(accessToken, accessTokenExpireAt, user.getId());
|
||||
|
@@ -48,7 +48,7 @@ public class SystemService {
|
||||
return pojo;
|
||||
});
|
||||
|
||||
String email = "admin@databasir.com";
|
||||
String email = "N/A";
|
||||
String username = "databasir";
|
||||
Optional<UserPojo> userOpt = userDao.selectByEmail(email);
|
||||
if (!userOpt.isPresent()) {
|
||||
|
Reference in New Issue
Block a user