keycloak~Googl的reCAPTCHA验证

这篇具有很好参考价值的文章主要介绍了keycloak~Googl的reCAPTCHA验证。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

reCAPTCHA是Google公司推出的一项验证服务,使用十分方便快捷,在国外许多网站上均有使用。它与许多其他的人机验证方式不同,它极少需要用户进行各种识图验证。

它的使用方式如下如所示,只需勾选复选框即可通过人机验证。

keycloak~Googl的reCAPTCHA验证

虽然简单但效果很好,因为Google会收集一些浏览器信息,网络信息,鼠标轨迹等信息,最后通过神经网络判断是否为机器人。而且reCAPTCHA还可以记录并分析使用该人机验证的请求次数,并对可以的请求进行统计和监管。

一些准备工作:
需要一个谷歌账号没有的先去注册一个

  • reCAPTCHA官网:https://developers.google.com/recaptcha/(需要kexue上网)
  • 使用reCAPTCHA需要创建密匙对,创建密匙:https://www.google.com/recaptcha/admin

首先先创建密匙
进入 https://www.google.com/recaptcha/admin

keycloak~Googl的reCAPTCHA验证

创建成功后会产生一对密匙

keycloak~Googl的reCAPTCHA验证

前端部署

在你需要添加reCAPTCHA的界面添加script标签

<script src="https://www.recaptcha.net/recaptcha/api.js"></script>

然后再你需要显示reCAPTCHA验证框的地方添加

<div class="g-recaptcha" data-sitekey="你的网站密匙"></div>

可以设置验证框的主题默认主题为light,可以添加属性:data-theme="dark" 变为暗色主题

方式一、自动将请求绑定到按钮

1、加载JavaScript API

 <script src="https://www.google.com/recaptcha/api.js"></script>

2、添加一个回调函数来处理令牌

     <script>
       function onSubmit(token) {
         document.getElementById("demo-form").submit();
       }
     </script>

3、向 html 按钮添加属性

    <button class="g-recaptcha" 
            data-sitekey="reCAPTCHA_site_key" 
            data-callback='onSubmit' 
            data-action='submit'>Submit</button>

方式二、以编程方式调用

keycloak~Googl的reCAPTCHA验证

为了大家方面理解,如上图,可以先看看我做的一个demo:recaptcha

1、用 sitekey(站点秘钥) 加载 JavaScript API

<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>

2、添加一个回调函数来处理令牌

     <script>
       function onSubmit(token) {
         document.getElementById("demo-form").submit();
       }
     </script>

3、在你需要进行人机验证的操作上调用 grecaptcha.execute 方法

reCAPTCHA v3 引入了一个新概念——动作如:( action: ‘submit / login’ )。当你在每一个执行 reCAPTCHA 的地方指定一个动作名称时,你启用了以下新特性:

1、管理控制台中前10个操作的详细数据分解

2、Adaptive risk analysis based on the context of the action, because abusive behavior can vary.

操作可能只包含字母数字字符、斜线和下划线。
       <script>
          function onClick(e) {
            e.preventDefault();
            grecaptcha.ready(function() {
              grecaptcha.execute('reCAPTCHA_site_key', {action: 'submit'}).then(function(token) {
                  // Add your logic to submit to your backend server here.
              });
            });
          }
      </script>
注意:

尝试将执行调用挂钩到有趣的动作,如注册、密码重置、购买或播放。

你可以使用ajax提交,也可以把 token 插入到 HTML 的 input hidden 隐藏框,一起提交到后端进行校验。

4、将令牌(token)立即发送到网站后端,并发送要验证的请求。

后端部署

在每次验证完成后会生成一个g-recaptcha-response验证码,需要将这个验证码和你的密匙一起发送至:https://www.recaptcha.net/recaptcha/api/siteverify (使用GET方式传参)

传参的格式:secret=xxxxxx&response=xxxxxxx

下图为需要传递的参数及其含义

接口返回的数据是json格式

    {
      "success": true|false,
      "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
      "hostname": string,         // the hostname of the site where the reCAPTCHA was solved
      "error-codes": [...]        // optional
    }

验证通过后success返回的值为“true”,如果验证失败则会返回error-code,下面为error-code及其对应原因

keycloak~Googl的reCAPTCHA验证文章来源地址https://www.toymoban.com/news/detail-711508.html

到了这里,关于keycloak~Googl的reCAPTCHA验证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • keycloak~jwt的rs256签名的验证方式

    keycloak开放接口地址:/auth/realms/fabao/.well-known/openid-configuration RSA算法是一种非对称加密算法,其安全性基于大整数分解的困难性。在RSA算法中,有以下几个关键参数: n(模数) :n 是一个大整数,通常为两个大素数 p 和 q 的乘积,即 n = p * q。n 用于生成公钥和私钥,并且决

    2024年04月22日
    浏览(56)
  • keycloak~使用jwks验证token的合法性

    keycloak提供了jwks服务,其地址可以在 /auth/realms/fabao/.well-known/openid-configuration 的返回结果中找到, jwks_uri 它表示了公钥的颁发者,可以使用颁发出来的公钥来验证token的签名,基地址也是固定的 /auth/realms/fabao/protocol/openid-connect/certs 。 jwt的解析以来于 java-jwt 包,由jwks服务解析

    2024年04月23日
    浏览(29)
  • 在Keycloak中实现多租户并在ASP.NET Core下进行验证

    Keycloak是一个功能强大的开源身份和访问管理系统,提供了一整套解决方案,包括用户认证、单点登录(SSO)、身份联合、用户注册、用户管理、角色映射、多因素认证和访问控制等。它广泛应用于企业和云服务,可以简化和统一不同应用程序和服务的安全管理,支持自托管

    2024年04月08日
    浏览(39)
  • google人机验证无法弹窗

    遇到无法访问的非国内资源,就两种合法方式,换国内源和加证书服务器 本人money有限采用第一种 首先将插件到谷歌浏览器,其他浏览器没有试过,思路一致。 点我跳转 然后下载我写好的json 链接:https://pan.baidu.com/s/1J-yQ7BPyABT6zKfl8RQnRA 提取码:6666 导入到该插件 重启电脑

    2024年02月11日
    浏览(37)
  • Google谷歌gmail邮箱账号注册遇到:此电话号码无法用于进行验证怎么办?

    申请注册Google谷歌gmail邮箱账号,验证您的手机号码时遇到:此电话号码无法用于进行验证怎么办?因为遇到此电话号码无法用于进行验证问题,将无法继续完成谷歌gmail邮箱google账号注册。 【解决办法】 您可以按下面的教程尝试注册解决,如已尝试仍无法解决注册Google谷歌

    2023年04月17日
    浏览(56)
  • 安全开发:身份认证方案之 Google 身份验证器和基于时间的一次性密码 TOTP 算法

    参考资料在文末注明,如本文有错漏欢迎评论区指出👏 目前很多应用都逐步采用了双因子认证或者说MFA认证方案,因此本文介绍一下背后的机制和 TOTP算法 原理。使用TOTP算法,只要满足两个条件:1)基于相同的密钥;2)时钟同步;只需要事先约定好密钥,TOTP算法就可以保

    2024年02月04日
    浏览(58)
  • keycloak~网站对接到Keycloak的步骤

    kc的环境 向kc申请自己的客户端 kc的登录接口 通过code换token接口 刷新token接口 kc的用户信息接口 kc的jwt token说明 测试环境:https://test-kc.xxx.com 预发布环境:https://pre-kc.xxx.com 生产环境:https://kc.xxx.com 联系负责开发kc的同事,申请一个客户端,需要提供以下信息: /auth/realms/{

    2024年04月08日
    浏览(38)
  • keycloak~CountDownLatch在keycloak中的使用

    在Java中, CountDownLatch 是一个线程同步的辅助类,用于等待其他线程完成操作。如果 CountDownLatch 实例被丢失或无法访问,可能会导致无法正常使用该对象。这可能会导致等待线程永远处于等待状态,无法继续执行。 如果意外丢失了 CountDownLatch 对象,你可以尝试以下方法进行

    2024年02月09日
    浏览(40)
  • keycloak~为keycloak-services项目添加第三方模块(首创)

    我们在对keycloak框架中的核心项目 keycloak-services 进行二次开发过程中,发现了一个问题,当时有这种需求,在keycloak-services中需要使用infinispan缓存,我们直接添加infinispan-core引用之后,在启动keycloak进出错了,提示我们没有找到infinispan.Cache,于是我尝试了如下方法,最终解决

    2024年02月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包