JooLun Plus 百科 ⬇ 源码下载

03.01 各终端 Auth2 登录

102353 于 2026-10-17 14:14:33 +08:00 修改了此页面

终端登录

  • 请求地址为 auth/oauth/token
  • header 中传终端信息:Authorization: Basic Base64(client_id:client_secret)
  • 以后台登录为例:这里为 Authorization: Basic Base64(admin:admin) 传入终端信息,代码如下
return request({
  url: '/auth/oauth/token',
  headers: {
    isToken: false,
    Authorization: 'Basic YWRtaW46YWRtaW4='
  },
  method: 'post',
  params: { username, password, randomStr, code, grant_type, scope }
})

终端密钥安全

  • 终端管理的列表和详情统一将 client_secret 显示为 ******,不向浏览器返回真实密钥。
  • 编辑终端时保留 ****** 表示密钥不变;填写新的密钥才会更新数据库。
  • OAuth2 认证使用受 @Inside 保护的内部查询读取真实密钥,不受管理端脱敏影响。

登录密码解密失败

账号密码登录由前端使用 securityKey 加密密码,再由网关使用 Nacos joolun-gateway-{profile}.yml 中的 security.encode.key 解密。两个配置必须完全一致,并满足当前 AES 使用的 16 字节密钥要求。

配置不一致或密文格式异常时,网关返回 HTTP 400,响应提示为:

登录密码解密失败,请联系管理员检查前端 securityKey 与网关 security.encode.key 是否一致

排查顺序:

  1. 检查当前发布的 joolun-plus-ui/src/config/env.ts 或 joolun-plus-app/config/env.js 中的 securityKey。
  2. 检查当前环境 Nacos joolun-gateway-{profile}.yml 中的 security.encode.key。
  3. 修改后重新构建对应前端并重启网关。
  4. 清理浏览器缓存或 CDN 缓存后重新登录。

为防止凭据泄露,网关日志只记录请求路径和配置核查方向,不记录密码明文或密文。

配置终端不校验验证码

默认所有终端都要校验验证码,可以修改网关配置来配置不校验验证码。

ignore:
  clients:
    - test
  swagger-providers:
    - ${AUTH-HOST:joolun-auth}

获取用户

SecurityUtils.getUser().getId()