mirror of
https://github.com/lingke-net/Space.Tab.git
synced 2026-09-12 05:45:17 +08:00
3.5 KiB
3.5 KiB
极验验证码配置说明
1. 获取极验配置
- 访问 极验官网 注册账号
- 在控制台创建应用,获取
captchaId - 配置域名白名单
2. 环境变量配置
在项目根目录创建 .env 文件:
# 极验验证码配置
VITE_GEETEST_CAPTCHA_KEY=你的captchaId
# OAuth配置
VITE_OA_ID=你的OAuth客户端ID
VITE_OA_URL=https://oauth.example.com
3. CSP配置(如需要)
如果遇到CSP策略阻止脚本加载,需要在服务器配置中添加以下域名到白名单:
<!-- 在HTML的meta标签中 -->
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' https://static.geetest.com https://gcaptcha4.geetest.com https://gcaptcha4.geevisit.com https://gcaptcha4.gsensebot.com https://static.geevisit.com;">
<!-- 或者在服务器配置中 -->
Content-Security-Policy: script-src 'self' 'unsafe-inline' 'unsafe-eval' https://static.geetest.com https://gcaptcha4.geetest.com https://gcaptcha4.geevisit.com https://gcaptcha4.gsensebot.com https://static.geevisit.com;
4. 后端验证
在登录接口中需要验证极验返回的验证结果:
// 后端验证示例
const verifyGeetest = async (captchaResult) => {
const { lot_number, captcha_output, pass_token, gen_time } = captchaResult
// 调用极验服务端验证接口
const response = await fetch('https://gcaptcha4.geetest.com/validate', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
lot_number,
captcha_output,
pass_token,
gen_time,
captcha_id: process.env.GEETEST_CAPTCHA_ID,
sign_token: process.env.GEETEST_SECRET_KEY
})
})
const result = await response.json()
return result.status === 'success'
}
5. 组件使用
<template>
<GeetestCaptcha
:captcha-id="captchaId"
@success="onCaptchaSuccess"
@error="onCaptchaError"
@close="onCaptchaClose"
/>
</template>
<script setup>
import GeetestCaptcha from '@/components/GeetestCaptcha.vue'
const onCaptchaSuccess = (result) => {
console.log('验证成功:', result)
// 将验证结果发送到后端
}
const onCaptchaError = (error) => {
console.error('验证失败:', error)
}
const onCaptchaClose = () => {
console.log('验证关闭')
}
</script>
6. 安全注意事项
- 不要在前端代码中硬编码
captchaId - 使用环境变量管理敏感配置
- 后端必须验证极验返回的验证结果
- 定期更新极验配置和密钥
7. 故障排除
常见问题
-
验证码不显示
- 检查
captchaId是否正确 - 检查域名是否在极验白名单中
- 检查网络连接
- 检查
-
脚本加载失败
- 检查CSP策略是否阻止了极验域名
- 确认环境变量
VITE_GEETEST_CAPTCHA_KEY已正确设置 - 尝试刷新页面或点击重试按钮
- 检查浏览器控制台错误信息
-
验证失败
- 检查后端验证逻辑
- 确认极验密钥配置正确
- 检查网络连接
-
CSP策略问题
- 在服务器配置中添加极验域名到白名单
- 或者使用
unsafe-inline策略(不推荐)
调试步骤
- 打开浏览器开发者工具
- 查看Console标签页的错误信息
- 查看Network标签页的请求状态
- 检查Application标签页的CSP策略
联系支持
如果问题仍然存在,请:
- 收集浏览器控制台的错误信息
- 检查网络请求状态
- 联系极验技术支持或项目管理员