Laravel 无痛使用 recaptcha 不用科学 sw
9

以 laravel5.7 登录为例。

步骤

首先

composer require 233sec/laravel-recaptchav3

修改 App\Http\Controllers\Auth\LoginController, 添加如下方法

    /**
     * Validate the user login request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return void
     *
     * @throws \Illuminate\Validation\ValidationException
     */
    protected function validateLogin(Request $request)
    {
        $request->validate([
            $this->username() => 'required|string',
            'password' => 'required|string',
            'g-recaptcha-response' => 'required|recaptchav3:login,0.5', // 重点在这一行
        ]);
    }

修改 resources/views/auth/login.blade.php
<button type="submit"...> 之前加入如下代码

            <div class="form-group
            @if ($errors->has('g-recaptcha-response'))
            has-error
            has-feedback
            @endif
            ">
                {!! RecaptchaV3::field('login') !!}
                @if ($errors->has('g-recaptcha-response'))
                    <span class="glyphicon glyphicon-warning-sign form-control-feedback" aria-hidden="true"></span>
                    <span class="help-block">{{ $errors->first('g-recaptcha-response') }}</span>
                @endif
            </div>

并在你的模板 javascript

@push('script')
    {!! RecaptchaV3::initJs() !!}
@endpush

.env 加入如下

RECAPTCHAV3_SITEKEY=#你的sitekey#
RECAPTCHAV3_SECRET=#你的secret#
RECAPTCHAV3_ORIGIN=https://www.recaptcha.net #这一行特别重要,否则在大陆无法使用

验证消息自定义

修改 resources/lang/#你的语言设置#/validation.php

<?php
return [
    ...,
    'custom' => [
        'g-recaptcha-response' => [
            'recaptchav3' => '验证码错误'
        ]
    ],

    'attributes' => [
        'g-recaptcha-response' => '验证码',
    ]
];

效果

file
file

来源

Fine or not, never stop. Laravel 运行生命周期解析

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 7
webstar

什么原理不用梯子

2周前
XiaohuiLam

@webstar
因为 https://www.recaptcha.net 是 Google 在北京的服务器

2周前

https://www.recaptcha.net 打开显示404 又被墙了?

2周前
XiaohuiLam

@CorePlusPlus
这个域名是解析在了北京,所以不可能提供google其他的服务的,不然也被封了。

2周前

@XiaohuiLam 好的 感谢分享

2周前
HI

看到标题 无痛 第一个想到了 人流~

1周前
XiaohuiLam

@someonelikeyou
同九义,汝何秀

1周前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!