Почему мой маршрут аутентифицированного пользователя возвращается не аутентифицированным?
Я создаю API Laravel, используя токен JWT для аутентификации . Я отправляю токен как файл cookie HTTPOnly. Когда я устанавливаю имя файла cookie как authToken, затем запускаю вход в систему, а затем аутентификацию_user в Postman, он показывает, что пользователь не прошел аутентификацию. Когда я меняю имя файла cookie на просто токен, а затем повторно запускаю тесты почтальона, аутентификация_user возвращает true с пользовательскими данными. Должен ли файл cookie иметь определенное имя? Почему токен работает, а authToken нет? Это правило, установленное Tymon/jwt-auth?
Вот соответствующая часть моей функции входа:
Код: Выделить всё
/**
* Get the authenticated User.
*
* @return \Illuminate\Http\JsonResponse
*/
public function authenticate_user()
{
$user = auth()->user();
if(!$user) {
return response()->json([
"message" => "User not authenticated."
], 401);
}
$roles = $user->getRoleNames();
$permissions = $user->getAllPermissions();
return response()->json([
'isAuthenticated' => true,
"user" => $user,
'roles' => $roles,
'permissions' => $permissions->pluck('name')
], 200);
}
/**
* Get a JWT via given credentials.
*
* @return \Illuminate\Http\JsonResponse
*/
public function login(Request $request)
{
$credentials = $request->only('email', 'password');
if (! $token = auth()->attempt($credentials)) {
return response()->json([
"message" => "Error logging in: Invalid credentials."
], 401);
}
// Set the JWT token in an HttpOnly cookie
return response()->json([
"message" => "Login successful!"
], 200)->cookie('token', $token, auth()->factory()->getTTL() * 60, '/', null, true, true, false, 'Strict'); // Change from authToken
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... t-apps-aut
Мобильная версия