?
<?php
namespace App\Providers;
use App\Actions\Fortify\CreateNewUser;
use App\Actions\Fortify\ResetUserPassword;
use App\Actions\Fortify\UpdateUserPassword;
use App\Actions\Fortify\UpdateUserProfileInformation;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\ServiceProvider;
use Laravel\Fortify\Fortify;
use App\Models\Masterlocation;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Laravel\Fortify\Contracts\LoginResponse;
use Laravel\Fortify\Contracts\LogoutResponse;
use Laravel\Fortify\Contracts\RegisterResponse;
class FortifyServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
Fortify::createUsersUsing(CreateNewUser::class);
Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
Fortify::resetUserPasswordsUsing(ResetUserPassword::class);
//Twin Logging with email & mobile number
Fortify::authenticateUsing(function (Request $request) {
$user = User::where('email', $request->email)
->orWhere('mobile', $request->email)
->first();
if ($user &&
Hash::check($request->password, $user->password)) {
return $user;
}
});
Fortify::loginview(function(){
return view('authviews.login');
});
// Fortify::registerview(function(Request $request){
// // if ($request->has('instructor-register')) {
// // return view('authviews.instructor');
// // } else {
// // return view('authviews.register');
// // }
// // $locationCombo = Masterlocation::getLocationName();
// // $vasCombo = Masterlocation::getVasName();
// // return view('authviews.register', [
// // // 'locationCombo' => $locationCombo,
// // // 'vasCombo'=>$vasCombo,
// // ]);
// });
Fortify::requestPasswordResetLinkView(function(){
return view('authviews.forgot-password');
});
Fortify::resetPasswordView(function($request){
return view('authviews.reset-password',['request'=>$request]);
});
Fortify::verifyEmailView(function(){
return view('authviews.verify-email');
});
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'));
});
}
}