festbench-web/app/Providers/FortifyServiceProvider.php

43 lines
1.1 KiB
PHP
Raw Normal View History

<?php
namespace App\Providers;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\ServiceProvider;
use Laravel\Fortify\Fortify;
class FortifyServiceProvider extends ServiceProvider
{
public function register(): void
{
//
}
public function boot(): void
{
Fortify::ignoreRoutes();
Fortify::authenticateUsing(function (Request $request) {
$user = \App\Models\User::where('email', $request->email)->first();
if ($user && \Illuminate\Support\Facades\Hash::check($request->password, $user->password)) {
return $user;
}
return null;
});
RateLimiter::for('login', function (Request $request) {
$email = (string) $request->email;
return Limit::perMinute(5)->by($email.'|'.$request->ip());
});
RateLimiter::for('two-factor', function (Request $request) {
return Limit::perMinute(5)->by($request->session()->get('login.id'));
});
}
}