После того, как я отзову токен пользователя с помощью функции:
public function logout(Request $r)
{
$r->user()->token()->revoke();
return response()->json([
'message' => 'Successfully logged out'
], 200);
}
Я не могу войти с помощью:
$user=User::where('email',$r->email)->first();
if ($user)
{
$credentials = $r->only('email', 'password');
if (!Auth::attempt($credentials)){
return response()->json(['message' => 'Unauthorized'], 401);
}
$user = $r->user();
$tokenResult = $user->createToken('Personal Access Token');
$token = $tokenResult->token;
$token->save();
$data = [
'access_token' => $tokenResult->accessToken,
'token_type' => 'Bearer',
'expires_at' => Carbon::parse(
$tokenResult->token->expires_at
)->toDateTimeString()
];
return response()->json(['data'=>$data,'message'=>'Successfully logged','status'=>'success'], 200);
Потому что я получаю «Метод Illuminate\Auth\RequestGuard::attempt не существует». в ответ






Это как-то связано с тем, как вы назвали Auth. Проверьте, как вы импортировали его (если у вас есть) ниже вашего пространства имен. Вы можете использовать use \Auth; или просто не импортировать его и использовать косую черту перед ним, и все должно работать нормально.
На тинкере я могу вызывать Auth::attempt() и \Auth::attempt() без ошибок.
Итак, для быстрого исправления попробуйте поставить \ перед Auth.
Спасибо за ваш ответ, но это не помогло. Эта ситуация возникает только тогда, когда я запускаю тест, в котором я вхожу в систему-> выход из системы-> снова вхожу в систему. Когда я проверяю вход вручную через Postman, этого не происходит.