feat(新增): 用户退出登录

This commit is contained in:
bunny 2024-09-27 08:55:34 +08:00
parent 15176c0b5a
commit 175e238852
8 changed files with 28 additions and 27 deletions

View File

@ -30,7 +30,7 @@ open class BaseContext {
}
@JvmStatic
fun getLoginVo(): LoginVo {
fun getLoginVo(): LoginVo? {
return loginVo.get()
}

View File

@ -9,13 +9,12 @@ import lombok.Data
class RedisUserConstant {
companion object {
// 管理员用户
private const val ADMIN_LOGIN_INFO_PREFIX: String = "ADMIN::LOGIN_INFO::"
private const val ADMIN_EMAIL_CODE_PREFIX: String = "ADMIN::EMAIL_CODE::"
private const val ADMIN_LOGIN_INFO_PREFIX: String = "admin::login_info::"
private const val ADMIN_EMAIL_CODE_PREFIX: String = "admin::email_code::"
// 普通用户
private const val USER_LOGIN_INFO_PREFIX: String = "USER::LOGIN_INFO::"
private const val USER_EMAIL_CODE_PREFIX: String = "USER::EMAIL_CODE::"
private const val USER_DO_LIKE_PREFIX: String = "USER::doLike::"
private const val USER_LOGIN_INFO_PREFIX: String = "user::login_info::"
private const val USER_EMAIL_CODE_PREFIX: String = "user::email_code::"
/**
* * 管理员用户登录信息
@ -60,16 +59,5 @@ class RedisUserConstant {
fun getUserEmailCodePrefix(user: String): String {
return USER_EMAIL_CODE_PREFIX + user
}
/**
* * 用户点赞操作
*
* @param user 用户名
* @return 用户点赞key
*/
@JvmStatic
fun getUserDoLikePrefix(user: String): String {
return USER_DO_LIKE_PREFIX + user
}
}
}

View File

@ -1,8 +0,0 @@
package cn.bunny.dao.pojo.enums
/**
* 数据库操作类型
*/
enum class OperationTypes {
UPDATE, INSERT
}

View File

@ -9,7 +9,7 @@ import lombok.Getter
enum class ResultCodeEnum(val code: Int, val message: String) {
// 成功操作 200
SUCCESS(200, "操作成功"),
SUCCESS_LOGOUT(200, "退出成功"),
LOGOUT_SUCCESS(200, "退出成功"),
EMAIL_CODE_SEND_SUCCESS(200, "邮箱验证码已发送"),
// 验证错误 201

View File

@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
*/
@Tag(name = "系统路由", description = "系统路由相关接口")
@RestController
@RequestMapping("/router")
@RequestMapping("admin/router")
public class RouterController {
}

View File

@ -43,4 +43,11 @@ class UserController {
val vo: RefreshTokenVo = userService.refreshToken(dto)
return Result.success(vo)
}
@Operation(summary = "退出登录", description = "退出登录")
@PostMapping("logOut")
fun logOut(): Result<String> {
userService.logOut()
return Result.success(ResultCodeEnum.LOGOUT_SUCCESS)
}
}

View File

@ -31,4 +31,9 @@ public interface UserService extends IService<AdminUser> {
*/
@NotNull
RefreshTokenVo refreshToken(@NotNull RefreshTokenDto dto);
/**
* * 退出登录
*/
void logOut();
}

View File

@ -1,5 +1,6 @@
package cn.bunny.services.service.impl
import cn.bunny.common.service.context.BaseContext
import cn.bunny.common.service.exception.BunnyException
import cn.bunny.common.service.utils.JwtHelper
import cn.bunny.dao.dto.system.RefreshTokenDto
@ -89,5 +90,13 @@ internal class UserServiceImpl : ServiceImpl<UserMapper?, AdminUser?>(), UserSer
return refreshTokenVo
}
/**
* * 退出登录
*/
override fun logOut() {
val loginVo = BaseContext.getLoginVo() ?: throw BunnyException(ResultCodeEnum.FAIL_REQUEST_NOT_AUTH)
redisTemplate.delete(RedisUserConstant.getAdminLoginInfoPrefix(loginVo.username!!))
}
}