authTokens; if ($user === false || (isset($tokens[0]) && $tokens[0]->token !== $token)) { return null; } return new UserAuthenticatable($user); } /** * Update the user's "remember me" token value * * @param Authenticatable $user User instance * @param string $token Token value * @return ? */ public function updateRememberToken(Authenticatable $user, $token) { $tokens = $user->getModel()->authTokens; if (isset($tokens[0])) { $token = $tokens[0]; $token->token($token); $token->save(); } } /** * Return \Illuminate\Contracts\Auth\Authenticatable * * @param array $credentials Credentials to use in locating the user * @return \Illuminate\Contracts\Auth\Authenticatable instance|null */ public function retrieveByCredentials(array $credentials) { if (isset($credentials['email'])) { $user = Gatekeeper::findUserByEmail($credentials['email']); } elseif (isset($credentials['username'])) { $user = Gatekeeper::findUserByUsername($credentials['username']); } if ($user === false) { return null; } $userAuth = new UserAuthenticatable($user); return $userAuth; } /** * Validate a user against the given credentials. * * @param \Illuminate\Contracts\Auth\Authenticatable $user * @param array $credentials * @return bool */ public function validateCredentials(Authenticatable $user, array $credentials) { $username = $user->getAuthIdentifier(); $credentials = [ 'username' => $username, 'password' => $credentials['password'] ]; return Gatekeeper::authenticate($credentials); } }