关闭验证码功能
This commit is contained in:
@@ -20,3 +20,6 @@ VITE_OPEN_ROUTE_INFO = false
|
|||||||
|
|
||||||
# 锁屏加密密钥
|
# 锁屏加密密钥
|
||||||
VITE_LOCK_ENCRYPT_KEY = s3cur3k3y4adpro
|
VITE_LOCK_ENCRYPT_KEY = s3cur3k3y4adpro
|
||||||
|
|
||||||
|
# 登录页是否显示验证码,设为 false 可关闭(需与后端 LOGIN_CAPTCHA_ENABLE 一致)
|
||||||
|
VITE_LOGIN_CAPTCHA_ENABLED = false
|
||||||
|
|||||||
@@ -7,5 +7,8 @@ VITE_BASE_URL = ./
|
|||||||
# API 根地址(后端路由为 /core、/tool、/dice 等,无 /prod 前缀,不要加 /prod)
|
# API 根地址(后端路由为 /core、/tool、/dice 等,无 /prod 前缀,不要加 /prod)
|
||||||
VITE_API_URL = https://dice-api.yuliao666.top
|
VITE_API_URL = https://dice-api.yuliao666.top
|
||||||
|
|
||||||
|
# 登录页是否显示验证码,设为 false 可关闭(需与后端 LOGIN_CAPTCHA_ENABLE 一致)
|
||||||
|
VITE_LOGIN_CAPTCHA_ENABLED = false
|
||||||
|
|
||||||
# Delete console
|
# Delete console
|
||||||
VITE_DROP_CONSOLE = true
|
VITE_DROP_CONSOLE = true
|
||||||
6
saiadmin-artd/src/types/api/api.d.ts
vendored
6
saiadmin-artd/src/types/api/api.d.ts
vendored
@@ -82,12 +82,12 @@ declare namespace Api {
|
|||||||
image: string
|
image: string
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 登录参数 */
|
/** 登录参数(关闭验证码时可不传 code、uuid) */
|
||||||
interface LoginParams {
|
interface LoginParams {
|
||||||
username: string
|
username: string
|
||||||
password: string
|
password: string
|
||||||
code: string
|
code?: string
|
||||||
uuid: string
|
uuid?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 登录响应 */
|
/** 登录响应 */
|
||||||
|
|||||||
@@ -164,6 +164,8 @@ export interface EnvConfig {
|
|||||||
VITE_USE_GZIP?: string
|
VITE_USE_GZIP?: string
|
||||||
// 是否开启 CDN
|
// 是否开启 CDN
|
||||||
VITE_USE_CDN?: string
|
VITE_USE_CDN?: string
|
||||||
|
// 登录页是否启用验证码,设为 false 或 0 关闭
|
||||||
|
VITE_LOGIN_CAPTCHA_ENABLED?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
// 应用配置
|
// 应用配置
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
show-password
|
show-password
|
||||||
/>
|
/>
|
||||||
</ElFormItem>
|
</ElFormItem>
|
||||||
<ElFormItem prop="code">
|
<ElFormItem v-if="captchaEnabled" prop="code">
|
||||||
<ElInput
|
<ElInput
|
||||||
class="custom-height"
|
class="custom-height"
|
||||||
:placeholder="$t('login.placeholder.code')"
|
:placeholder="$t('login.placeholder.code')"
|
||||||
@@ -115,6 +115,12 @@
|
|||||||
const systemName = AppConfig.systemInfo.name
|
const systemName = AppConfig.systemInfo.name
|
||||||
const formRef = ref<FormInstance>()
|
const formRef = ref<FormInstance>()
|
||||||
|
|
||||||
|
/** 是否启用登录验证码(与后端 LOGIN_CAPTCHA_ENABLE 保持一致) */
|
||||||
|
const captchaEnabled = computed(() => {
|
||||||
|
const v = import.meta.env.VITE_LOGIN_CAPTCHA_ENABLED
|
||||||
|
return v !== 'false' && v !== '0'
|
||||||
|
})
|
||||||
|
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
username: '',
|
username: '',
|
||||||
password: '',
|
password: '',
|
||||||
@@ -123,16 +129,21 @@
|
|||||||
rememberPassword: true
|
rememberPassword: true
|
||||||
})
|
})
|
||||||
|
|
||||||
const rules = computed<FormRules>(() => ({
|
const rules = computed<FormRules>(() => {
|
||||||
username: [{ required: true, message: t('login.placeholder.username'), trigger: 'blur' }],
|
const r: FormRules = {
|
||||||
password: [{ required: true, message: t('login.placeholder.password'), trigger: 'blur' }],
|
username: [{ required: true, message: t('login.placeholder.username'), trigger: 'blur' }],
|
||||||
code: [{ required: true, message: t('login.placeholder.code'), trigger: 'blur' }]
|
password: [{ required: true, message: t('login.placeholder.password'), trigger: 'blur' }]
|
||||||
}))
|
}
|
||||||
|
if (captchaEnabled.value) {
|
||||||
|
r.code = [{ required: true, message: t('login.placeholder.code'), trigger: 'blur' }]
|
||||||
|
}
|
||||||
|
return r
|
||||||
|
})
|
||||||
|
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
refreshCaptcha()
|
if (captchaEnabled.value) refreshCaptcha()
|
||||||
})
|
})
|
||||||
|
|
||||||
// 登录
|
// 登录
|
||||||
@@ -146,12 +157,11 @@
|
|||||||
|
|
||||||
loading.value = true
|
loading.value = true
|
||||||
|
|
||||||
// 登录请求
|
// 登录请求(关闭验证码时不传 code/uuid)
|
||||||
const { access_token, refresh_token } = await fetchLogin({
|
const { access_token, refresh_token } = await fetchLogin({
|
||||||
username: formData.username,
|
username: formData.username,
|
||||||
password: formData.password,
|
password: formData.password,
|
||||||
code: formData.code,
|
...(captchaEnabled.value ? { code: formData.code, uuid: formData.uuid } : {})
|
||||||
uuid: formData.uuid
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// 验证token
|
// 验证token
|
||||||
@@ -178,7 +188,7 @@
|
|||||||
console.error('[Login] Unexpected error:', error)
|
console.error('[Login] Unexpected error:', error)
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
refreshCaptcha()
|
if (captchaEnabled.value) refreshCaptcha()
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,9 +49,12 @@ class LoginController extends BaseController
|
|||||||
|
|
||||||
$code = $request->post('code', '');
|
$code = $request->post('code', '');
|
||||||
$uuid = $request->post('uuid', '');
|
$uuid = $request->post('uuid', '');
|
||||||
$captcha = new Captcha();
|
$captchaEnabled = config('plugin.saiadmin.saithink.captcha.enable', true);
|
||||||
if (!$captcha->checkCaptcha($uuid, $code)) {
|
if ($captchaEnabled) {
|
||||||
return $this->fail('验证码错误');
|
$captcha = new Captcha();
|
||||||
|
if (!$captcha->checkCaptcha($uuid, $code)) {
|
||||||
|
return $this->fail('验证码错误');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$logic = new SystemUserLogic();
|
$logic = new SystemUserLogic();
|
||||||
$data = $logic->login($username, $password, $type);
|
$data = $logic->login($username, $password, $type);
|
||||||
|
|||||||
@@ -8,9 +8,11 @@ return [
|
|||||||
|
|
||||||
'access_exp' => 8 * 60 * 60, // 登录token有效期,默认8小时
|
'access_exp' => 8 * 60 * 60, // 登录token有效期,默认8小时
|
||||||
|
|
||||||
// 验证码存储模式
|
// 验证码配置
|
||||||
'captcha' => [
|
'captcha' => [
|
||||||
// 验证码存储模式 session或者cache
|
// 是否启用登录验证码。改为 false 即关闭;也可用环境变量 LOGIN_CAPTCHA_ENABLE=0 关闭
|
||||||
|
'enable' => filter_var(getenv('LOGIN_CAPTCHA_ENABLE') ?: '0', FILTER_VALIDATE_BOOLEAN),
|
||||||
|
// 验证码存储模式 session 或 cache
|
||||||
'mode' => getenv('CAPTCHA_MODE'),
|
'mode' => getenv('CAPTCHA_MODE'),
|
||||||
// 验证码过期时间 (秒)
|
// 验证码过期时间 (秒)
|
||||||
'expire' => 300,
|
'expire' => 300,
|
||||||
|
|||||||
Reference in New Issue
Block a user