55
common/Auth/Fortify/FortifyServiceProvider.php
Executable file
55
common/Auth/Fortify/FortifyServiceProvider.php
Executable file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace Common\Auth\Fortify;
|
||||
|
||||
use Illuminate\Cache\RateLimiting\Limit;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\RateLimiter;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract;
|
||||
use Laravel\Fortify\Contracts\LogoutResponse as LogoutResponseContract;
|
||||
use Laravel\Fortify\Contracts\RegisterResponse as RegisterResponseContract;
|
||||
use Laravel\Fortify\Contracts\TwoFactorLoginResponse as TwoFactorLoginResponseContract;
|
||||
use Laravel\Fortify\Fortify;
|
||||
|
||||
class FortifyServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function register()
|
||||
{
|
||||
$this->app->instance(LoginResponseContract::class, new LoginResponse());
|
||||
$this->app->instance(
|
||||
TwoFactorLoginResponseContract::class,
|
||||
new TwoFactorLoginResponse(),
|
||||
);
|
||||
$this->app->instance(
|
||||
LogoutResponseContract::class,
|
||||
new LogoutResponse(),
|
||||
);
|
||||
$this->app->instance(
|
||||
RegisterResponseContract::class,
|
||||
new RegisterResponse(),
|
||||
);
|
||||
}
|
||||
|
||||
public function boot()
|
||||
{
|
||||
Fortify::createUsersUsing(FortifyRegisterUser::class);
|
||||
Fortify::resetUserPasswordsUsing(ResetUserPassword::class);
|
||||
Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
|
||||
|
||||
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'),
|
||||
);
|
||||
});
|
||||
|
||||
Fortify::authenticateUsing(function (Request $request) {
|
||||
return (new ValidateLoginCredentials())->execute($request);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user