类 LoginController

java.lang.Object
net.sohelp.boot.admin.core.base.BaseController
net.sohelp.boot.demo.web.login.LoginController

@RestController("web-login") @RequestMapping("/login") public class LoginController extends BaseController
登录控制器,提供用户登录、注销、获取验证码等功能接口

等保合规登录流程:

  • 验证码校验
  • LoginService.validate() — 账号锁定检查 + 密码验证 + 失败计数
  • 账号状态校验
  • LoginService.checkPasswordExpire() — 密码过期检查(过期返回 code=601)
  • JWT 签发访问令牌
  • 构造器详细资料

    • LoginController

      public LoginController()
  • 方法详细资料

    • logout

      @PostMapping("/logout") @OperationLog("\u9000\u51fa\u767b\u5f55") public ApiResult<String> logout() throws Exception
      用户注销登录操作
      返回:
      返回注销结果信息
      抛出:
      Exception - 可能抛出的异常
    • login

      @PostMapping("/login") @Transactional(rollbackFor=java.lang.Exception.class) public ApiResult<?> login(@RequestBody Map<String,Object> paramMap) throws Exception
      账号密码登录验证处理方法

      等保合规登录流程:验证码校验 → AES-GCM 解密 → 账号锁定/密码校验 → 账户状态 → 密码过期 → 签发令牌

      参数:
      paramMap - 包含 username / password(AES加密) / code / uuid 的请求体
      返回:
      登录结果:access_token、last_login;密码过期返回 code=601
      抛出:
      Exception
    • changePwd

      @PostMapping("/changePwd") public ApiResult<String> changePwd(@RequestBody Map<String,Object> paramMap) throws Exception
      密码过期后修改密码(等保:定期强制更换密码)

      登录返回 code=601 时,前端携带 pwd_token 调用此接口完成密码修改,修改成功后重新登录。 密码由前端 AES-GCM 加密传输,后端解密后再执行强制修改。

      参数:
      paramMap - 请求体:pwd_token / new_password / confirm_password
      抛出:
      Exception
    • captcha

      @GetMapping("/captcha") public ApiResult<Map<String,Object>> captcha()
      获取图形验证码图片及UUID标识符
      返回:
      验证码相关信息,包括base64编码图像数据、UUID等
    • getLoginConfig

      @GetMapping("/getLoginConfig") public ApiResult<Map<String,Object>> getLoginConfig()
      获取系统登录相关配置信息,例如第三方登录开关、注册功能开关等
      返回:
      登录页面所需的各种配置项组合成的数据结构
    • changeLanguage

      @GetMapping("/changeLanguage") public ApiResult<String> changeLanguage(@RequestParam String lang)
      更改当前用户的语言环境设置
      参数:
      lang - 指定的语言代码,如"en"表示英文,"zh_CN"表示简体中文等
      返回:
      设置成功的响应结果