流明Google reCAPTCHA验证

马里纳里奥·阿加柳(Marinario Agalliu)

我已经看到了一些关于它的例子和示例,并且已经以某种方式实现了它。控制器中的方法如下所示:

使用的逻辑只是php,我想使用更多的lumen / laravel逻辑,而不仅仅是简单的php。我也尝试过并且没有工作过anhskohbo / no-captcha

public function create(Request $request)
{
    try {

        $this->validate($request, [
            'reference'            => 'required|string',
            'first_name'           => 'required|string|max:50',
            'last_name'            => 'required|string|max:50',
            'birthdate'            => 'required|before:today',
            'gender'               => 'required|string',
            'email'                => 'required|email|unique:candidates',
            'g-recaptcha-response' => 'required',
        ]);

        //Google recaptcha validation
        if ($request->has('g-recaptcha-response')) {

            $secretAPIkey = env("RECAPTCHA_KEY");

            // reCAPTCHA response verification
            $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secretAPIkey.'&response='.$request->input('captcha-response'));
                
            $response = json_decode($verifyResponse);

            if ($response->success) {

                //Form submission
                //Saving data from request in candidates

                $candidate = Candidate::create($request->except('cv_path'));

                $response = array(
                    "status" => "alert-success",
                    "message" => "Your mail have been sent."
                );

            } else {

                $response = array(
                    "status" => "alert-danger",
                    "message" => "Robot verification failed, please try again."
                );
                  
            }

        }
        
    } catch(Exception $e) {

        return response()->json($e->getMessage());
    }

    return response()->json(['id' => $candidate->id, $response]);

}
马里纳里奥·阿加柳(Marinario Agalliu)

奥基 Google为此提供了一个软件包:reCAPTCHA PHP客户端库

只是: composer require google/recaptcha "^1.2"

并在控制器内部的方法中:

$recaptcha = new \ReCaptcha\ReCaptcha(config('app.captcha.secret_key'));

$response = $recaptcha->verify($request->input('g-recaptcha-response'), $_SERVER['REMOTE_ADDR']);

if ($response->isSuccess()) { 

   //Your logic goes here
    
} else {
    $errors = $response->getErrorCodes();
}

config('app.captcha.site_key') 意味着我从config / app.php那里获取了密钥,而从.env文件那里获取了。

如果没有config文件夹,则应创建它,并创建与laravel中相同的app.php文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在服务器端验证Google reCAPTCHA v3?

来自分类Dev

Google reCAPTCHA:如何在服务器端获得用户响应并进行验证

来自分类Dev

从Google ReCaptcha Scraping获取错误的验证码图像

来自分类Dev

如何在Django中验证Google reCAPTCHA v2

来自分类Dev

验证Google reCaptcha失败

来自分类Dev

新的Google reCAPTCHA始终无法通过本地主机验证

来自分类Dev

带有jQuery验证的Google reCAPTCHA

来自分类Dev

使用Google reCAPTCHA验证表单的提交

来自分类Dev

如何在后端检入之前使用angularjs控制器验证Google v2 reCaptcha

来自分类Dev

流明,身份验证尝试始终返回false(jwt或auth)

来自分类Dev

Google ReCAPTCHA-返回JSON语法错误,用于验证用户的响应

来自分类Dev

流明测试。UploadedFile验证失败

来自分类Dev

Google Recaptcha第二次未在服务器端验证

来自分类Dev

验证时流明FatalThrowableError

来自分类Dev

Google reCaptcha验证握手异常

来自分类Dev

如何使用jQuery验证插件和PHP创建Google reCAPTCHA v2.0验证

来自分类Dev

流明护照密码授予返回未经身份验证

来自分类Dev

如何为Google创建自定义CSS主题,无验证码reCAPTCHA

来自分类Dev

reCaptcha验证超时

来自分类Dev

带有php验证的Google reCaptcha

来自分类Dev

如何使用javascript验证reCAPTCHA?

来自分类Dev

reCaptcha打破其他验证?

来自分类Dev

流明自定义身份验证,无需雄辩

来自分类Dev

Google reCaptcha未在客户端验证

来自分类Dev

验证时流明FatalThrowableError

来自分类Dev

在触发ajaxForm之前验证Recaptcha

来自分类Dev

Google reCAPTCHA 重置由函数调用呈现的多个验证码

来自分类Dev

过期后的 Google Recaptcha V2 验证

来自分类Dev

如何在 ASP Classic 中验证 Google Recaptcha 2.0 服务器端?

Related 相关文章

热门标签

归档