将 hCaptcha 添加到 Laravel Jetstream (Inertia.js)
Adding hCaptcha to Laravel Jetstream (Inertia.js)
我正在使用 Laravel 8 - Jetstream 2.0 和 Inertia 堆栈。
我安装了 Vue hCaptcha 组件 https://github.com/hCaptcha/vue-hcaptcha Vue 组件已经在我的登录表单中并且看起来不错。
Vue component is working
然后我按照本指南 https://serversideup.net/laravel-hcaptcha-custom-validation-rule/ 并在 laravel 中设置了 hCaptcha 规则。
现在我的问题是 laravel/jetstream 我可以在提交表单时设置验证码规则。所以验证码被使用而不仅仅是显示。
我知道这是一个非常基本的问题,但我是 laravel 的新手,正在尝试进入 vue、inertia.js 和 jetstream。
好的,fortitfy 中没有默认的 Logincontroller,所以我自己制作了一个来验证表单中的验证码。此代码缺少用户友好的错误消息管理,但验证码有效。
登录控制器
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Rules\ValidHCaptcha;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
class LoginController extends Controller
{
public function authenticate(Request $request)
{
// Retrive Input
$validation = $request->only('email', 'password', 'hcaptcharesponse');
Validator::make($validation, [
'email' => ['required', 'string', 'email', 'max:255'],
'password' => ['required'],
'hcaptcharesponse' => ['required', new ValidHCaptcha()],
])->validate();
try {
$user = User::where('email', $request->email)->first();
if ($user && Hash::check($request->password, $user->password)) {
Auth::login($user);
return redirect('/dashboard');
}
} catch (Exception $e) {
dd($e->getMessage());
}
}
}
登录控制器的路由
//Custom login controller for Captcha use Route::post('login',
[LoginController::class, 'authenticate'])->name('login');
我正在使用 Laravel 8 - Jetstream 2.0 和 Inertia 堆栈。
我安装了 Vue hCaptcha 组件 https://github.com/hCaptcha/vue-hcaptcha Vue 组件已经在我的登录表单中并且看起来不错。
Vue component is working
然后我按照本指南 https://serversideup.net/laravel-hcaptcha-custom-validation-rule/ 并在 laravel 中设置了 hCaptcha 规则。
现在我的问题是 laravel/jetstream 我可以在提交表单时设置验证码规则。所以验证码被使用而不仅仅是显示。
我知道这是一个非常基本的问题,但我是 laravel 的新手,正在尝试进入 vue、inertia.js 和 jetstream。
好的,fortitfy 中没有默认的 Logincontroller,所以我自己制作了一个来验证表单中的验证码。此代码缺少用户友好的错误消息管理,但验证码有效。
登录控制器
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Rules\ValidHCaptcha;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
class LoginController extends Controller
{
public function authenticate(Request $request)
{
// Retrive Input
$validation = $request->only('email', 'password', 'hcaptcharesponse');
Validator::make($validation, [
'email' => ['required', 'string', 'email', 'max:255'],
'password' => ['required'],
'hcaptcharesponse' => ['required', new ValidHCaptcha()],
])->validate();
try {
$user = User::where('email', $request->email)->first();
if ($user && Hash::check($request->password, $user->password)) {
Auth::login($user);
return redirect('/dashboard');
}
} catch (Exception $e) {
dd($e->getMessage());
}
}
}
登录控制器的路由
//Custom login controller for Captcha use Route::post('login',
[LoginController::class, 'authenticate'])->name('login');