I am building a Laravel 8 application and have successfully implemented authentication. Now I want to check if a user’s status is active before logging him in. I have added a field in the users table
username varchar password varchar .... status tinyint(1) ...
I am using JetStream and Fortify
Thank You
Advertisement
Answer
You can customize user authentication from appProvidersJetStreamServiceProvider.php
, on boot
method :
use AppModelsUser; use IlluminateHttpRequest; use LaravelFortifyFortify; public function boot() { $this->configurePermissions(); Jetstream::createTeamsUsing(CreateTeam::class); Jetstream::updateTeamNamesUsing(UpdateTeamName::class); Jetstream::addTeamMembersUsing(AddTeamMember::class); Jetstream::deleteTeamsUsing(DeleteTeam::class); Jetstream::deleteUsersUsing(DeleteUser::class); // Below code is for your customization Fortify::authenticateUsing(function (Request $request) { $user = User::where('email', $request->email)->first(); if ($user && Hash::check($request->password, $user->password)) { if ($user->status == 1) { // it will return if status == 1 return $user; } } }); }
See the official Jetstream
documentation of Customizing User Authentication