当前位置: 首页 > wzjs >正文

无锡企业建站系统企业网站管理系统带授权

无锡企业建站系统,企业网站管理系统带授权,淘宝上网站开发,高端模板网站建设公司#本文仅教学前端, Vue3TypeScript# 1. 选择 reCAPTCHA 版本 reCAPTCHA v2(用户交互式): "Im not a robot" 复选框:用户点击复选框完成验证。 隐形 reCAPTCHA:自动在后台触发(例如表…

#本文仅教学前端, Vue3+TypeScript#

1. 选择 reCAPTCHA 版本

  • reCAPTCHA v2(用户交互式)

    • "I'm not a robot" 复选框:用户点击复选框完成验证。

    • 隐形 reCAPTCHA:自动在后台触发(例如表单提交时),仅可疑流量需交互。

  • reCAPTCHA v3(无感验证)

    • 完全隐形,返回用户风险评分(0.0-1.0),由后端根据评分决定是否允许操作。

  • 选择依据

    • 需要用户交互(如登录表单)→ v2。

    • 需无感分析流量风险(如API调用)→ v3。

  • 本文使用V2显性复选框

2. 注册 API 密钥

  • 步骤

    1. 访问 Google reCAPTCHA 管理后台。

    2. 注册站点,选择版本(v2/v3)。

    3. 获取 Site Key(前端使用) 和 Secret Key(后端使用)

  • 域名配置:确保注册时填写正确的域名(如 localhost 用于本地测试)。

3. 前端实现步骤

  1. 在index.html中注入脚本 和官网不一样,使用recaptcha.net对中国大陆更友好
        <!-- 集成谷歌recaptcha --><script src="https://www.recaptcha.net/recaptcha/api.js" async defer onload="if(window.onRecaptchaLoaded) window.onRecaptchaLoaded()"></script>
  2.  登录界面找个div 挂载渲染实例
    <template><form @submit.prevent="onSubmit" class="bg-red-900 p-4"><div ref="recaptchaContainer"></div><br /><input type="submit" value="提交" class="px-4 py-2 bg-blue-500 text-white rounded" /></form>
    </template>

  3. 加载时渲染或者回调

    <script setup lang="ts">
    const recaptchaToken = ref('')
    const recaptchaContainer = ref<HTMLElement | null>(null)// 在组件挂载后初始化 reCAPTCHA
    onMounted(() => {if (window.grecaptcha?.render) {renderRecaptcha()} else {// 定义全局回调函数,当 reCAPTCHA 脚本加载完成时会调用window.onRecaptchaLoaded = renderRecaptcha}
    })// 渲染 reCAPTCHA
    const renderRecaptcha = () => {if (recaptchaContainer.value && window.grecaptcha) {window.grecaptcha.render(recaptchaContainer.value, {'sitekey': '这里是你注册得到的后端密钥','callback': (token: string) => {recaptchaToken.value = tokenconsole.log('reCAPTCHA 验证成功')},'expired-callback': () => {recaptchaToken.value = ''console.log('reCAPTCHA 已过期,需要重新验证')}})}
    }// 处理表单提交
    const handleSubmit = () => {if (!recaptchaToken.value) {alert('请完成人机验证')return}console.log('提交登录请求', {email: email.value,password: password.value,recaptchaToken: recaptchaToken.value})// 这里添加你的实际登录逻辑// 例如调用 API 进行身份验证
    }
    </script><script lang="ts">
    // 为 TypeScript 声明全局 window 对象上的 reCAPTCHA 属性
    declare global {interface Window {grecaptcha: any;onRecaptchaLoaded?: () => void;}
    }
    </script>

  4.  如果是V3

    <template><form @submit.prevent="onSubmit" class="bg-red-900 p-4"><!-- reCAPTCHA v3 是隐形的,不需要显示元素 --><input type="submit" value="提交" class="px-4 py-2 bg-blue-500 text-white rounded" /></form>
    </template><script setup lang="ts">
    import { ref, onMounted } from 'vue'const recaptchaToken = ref('')onMounted(() => {// 加载 reCAPTCHA v3const script = document.createElement('script')script.src = 'https://www.recaptcha.net/recaptcha/api.js?render=这里还是你的前端密钥'document.head.appendChild(script)
    })const executeRecaptcha = () => {return new Promise((resolve) => {if (window.grecaptcha) {window.grecaptcha.ready(() => {window.grecaptcha.execute('这里也是你的前端密钥', {action: 'LOGIN'}).then((token: string) => {recaptchaToken.value = tokenresolve(token)})})} else {console.error('reCAPTCHA 未加载')resolve('')}})
    }const onSubmit = async () => {// 在提交表单时执行验证const token = await executeRecaptcha()console.log('表单提交,验证令牌:', token)// 这里添加你的登录逻辑,将token发送到服务器进行验证
    }
    </script>

 剩下的交给后端就行了,你就复杂拿到token带给他


文章转载自:

http://o1EnzWFe.kwqcy.cn
http://pbmUeijC.kwqcy.cn
http://5uRcZ6sx.kwqcy.cn
http://IpcbTkSF.kwqcy.cn
http://5Kn55nzs.kwqcy.cn
http://HE9c3SqU.kwqcy.cn
http://J1N1LDcf.kwqcy.cn
http://CKk064lm.kwqcy.cn
http://6ZzVMIIE.kwqcy.cn
http://SSURZCCP.kwqcy.cn
http://d7jweiq3.kwqcy.cn
http://LVaKH9U4.kwqcy.cn
http://cPqnmVnu.kwqcy.cn
http://jFqOS1Pd.kwqcy.cn
http://CU9CvXq0.kwqcy.cn
http://mQBpjPll.kwqcy.cn
http://Sd0dk4CM.kwqcy.cn
http://ilSMEdMw.kwqcy.cn
http://ZBYQlmMr.kwqcy.cn
http://dzYVaEcz.kwqcy.cn
http://7hLQJci6.kwqcy.cn
http://FjFhUhiV.kwqcy.cn
http://AmvLzBSA.kwqcy.cn
http://9DHTZRUZ.kwqcy.cn
http://vOOjr23E.kwqcy.cn
http://5Ljx3fUs.kwqcy.cn
http://WjF19EGG.kwqcy.cn
http://kWpRaRfP.kwqcy.cn
http://g9gBmXW1.kwqcy.cn
http://g4Y7CPzE.kwqcy.cn
http://www.dtcms.com/wzjs/669216.html

相关文章:

  • 怎么做自己的cms导购网站网站免费源码大全无用下载
  • 移动网站建设哪家便宜做网站比特币钱包
  • 西安市城乡建设管理局网站的公示栏6海口网站开发公司电话
  • 烟台怎么做网站怎么制作一个微信小程序
  • 网站与后台企业网站怎样做可以搜索到
  • 校园网站建设的背景企业网站的建立方法
  • vs 网站开发教程网站备案申请
  • 建一个购物网站香水网络营销策划方案
  • 茶叶网站制作模板简约的网页设计欣赏
  • 网站建设捌金手指下拉十四网站建设公司擅自关闭客户网络
  • dedecms 调用网站内部搜索外贸电商
  • 大连网站设计菲尔莱斯推广宣传方式有哪些
  • 自适应网站开发wordpress怎么实现会员登录
  • 怎样刷新网站做杂志的网站有哪些
  • 网站标题应怎设置企业文化包括哪六个
  • 怎么在wordpress建英文网站怎么制作网站首页的代码
  • 买过域名之前就可以做网站了吗?普通电脑可以做网站服务器
  • 现在网站都是拿什么软件做的如何在微信公众号里建设微网站
  • 怎么查网站空间在哪里网站服务器租用选择
  • 成都网站优化推广怎么建设自己的购物网站
  • 服饰类网站开发项目湖南省建设工程施工合同
  • seo两个域名一个网站有影响吗wordpress手机版如何设置
  • html5网站引导页中关村手机在线官网
  • 网站定制分享安阳论坛最新消息
  • 企业网站 设计销售策略和营销策略
  • 做网站的时候怎么把图片往左移请人做网站合同
  • 东莞网站建设搭建网站开发后未付维护费
  • 如何用网站做淘宝客wordpress喜欢
  • 网站建设考试wordpress 关闭功能
  • wix做的网站 网址是什么吉林网络公司