Class RedisSecurityAuthenticateUserService

java.lang.Object
com.codeupsoft.component.security.service.impl.RedisSecurityAuthenticateUserService
All Implemented Interfaces:
SecurityAuthenticateUserService

public class RedisSecurityAuthenticateUserService extends Object implements SecurityAuthenticateUserService
基于Redis的安全认证用户服务实现类.

提供基于Redis的用户认证功能,包括用户信息缓存、令牌生成与验证、 用户登出等操作.使用JWT令牌结合Redis存储用户信息, 实现高效的用户认证和会话管理.

Author:
Liu,Dongdong
  • Constructor Details

    • RedisSecurityAuthenticateUserService

      public RedisSecurityAuthenticateUserService()
  • Method Details

    • getLoginUser

      public LoginUser getLoginUser(jakarta.servlet.http.HttpServletRequest request)
      从HTTP请求中获取当前登录用户信息.

      解析请求头中的JWT令牌,验证令牌有效性后从Redis中获取用户信息. 如果令牌无效或用户信息不存在,则返回null.

      Specified by:
      getLoginUser in interface SecurityAuthenticateUserService
      Parameters:
      request - HTTP请求对象
      Returns:
      登录用户信息,如果未登录或令牌无效则返回 null
    • logout

      public void logout(jakarta.servlet.http.HttpServletRequest request)
      登出当前用户.

      从请求中解析JWT令牌,删除Redis中对应的用户信息, 实现用户登出功能.

      Specified by:
      logout in interface SecurityAuthenticateUserService
      Parameters:
      request - HTTP请求对象
    • verifyUser

      public void verifyUser(LoginUser loginUser)
      验证并刷新用户令牌.

      检查用户令牌是否即将过期,如果需要则刷新令牌有效期. 当令牌剩余有效期小于配置的刷新范围时,更新Redis中用户信息的过期时间.

      Specified by:
      verifyUser in interface SecurityAuthenticateUserService
      Parameters:
      loginUser - 登录用户信息
    • createToken

      public String createToken(LoginUser loginUser)
      创建JWT访问令牌.

      根据登录用户信息生成JWT访问令牌,并将用户信息缓存到Redis中. 设置令牌有效期与Redis缓存有效期一致.

      Specified by:
      createToken in interface SecurityAuthenticateUserService
      Parameters:
      loginUser - 登录用户信息
      Returns:
      生成的JWT访问令牌