retrieveById($identifier); if (!$user) { return null; } $rememberToken = $user->getRememberToken(); return $rememberToken && hash_equals($rememberToken, $token) ? $user : null; } /** * Update the "remember me" token for the given user in storage. */ public function updateRememberToken(Authenticatable $user, $token): void { $user->setRememberToken($token); $user->save(); } /** * Retrieve a user by the given credentials. */ public function retrieveByCredentials(array $credentials): ?Authenticatable { if (empty($credentials['email'])) { return null; } return User::findByEmail($credentials['email']); } /** * Validate a user against the given credentials. * * For passwordless authentication, this always returns true. */ public function validateCredentials(Authenticatable $user, array $credentials): bool { return true; } /** * Rehash the user's password if required and update the model. * * This is a no-op for passwordless authentication. */ public function rehashPasswordIfRequired(Authenticatable $user, array $credentials, bool $force = false): void { // No-op: passwordless authentication doesn't use passwords } }