Overriding Fortify's Authentication
Background
use App\Models\User;
use JoelButcher\Socialstream\Contracts\ResolvesSocialiteUsers;
use JoelButcher\Socialstream\Socialstream;
use Illuminate\Validation\ValidationException;
Fortify::authenticateUsing(function (Request $request) {
if ($provider = $request->route('provider')) {
$socialUser = app(ResolvesSocialiteUsers::class)
->resolve($provider);
$connectedAccount = Socialstream::$connectedAccountModel::where('email', $socialUser->getEmail())->first();
if (! $connectedAccount) {
ValidationException::withMessages([
Fortify::username() => [__('auth.failed')],
]);
}
return $connectedAccount->user;
}
// You're custom authentication logic here.
});Example
Last updated