Я внимательно читаю https://laravel.com/docs/11.x/sanctum#s ... entication.
В статье указано, что они должны находиться в одном домене верхнего уровня, и это нормально. Однако моя текущая настройка предполагает использование Laravel в качестве API в одном домене и ReactJS в другом домене.
Локально ReactJS работает на localhost:5173, а Laravel — на 127.0.0.1. :8000.
ReactJS
Код: Выделить всё
await axios.get('/sanctum/csrf-cookie', { headers: {
'accept': 'application/json',
'Content-Type': 'application/json'
}})
const response = await axios.post('/api/login', payload, { headers: {
'accept': 'application/json',
'Content-Type': 'application/json'
}});
if (response) {
const responses = await axios.get('/api/user', {
headers: {
'accept': 'application/json',
'Content-Type': 'application/json'
}
});
console.log(responses);
}
Код: Выделить всё
const responses = await axios.get('/api/user', {
headers: {
'accept': 'application/json',
'Content-Type': 'application/json'
}
});
.env
Код: Выделить всё
SESSION_DOMAIN='.127.0.0.1:8000'
SANCTUM_STATEFUL_DOMAINS='localhost:5173'
Код: Выделить всё
'paths' => ['api/*', 'sanctum/csrf-cookie', 'login'],
'allowed_origins' => [http://localhost:5173'],
'supports_credentials' => true,
Код: Выделить всё
public function login(Request $request)
{
$validated = $request->validate([
'email' => 'required|email',
'password' => 'required',
]);
if (Auth::attempt($validated)) {
$token = auth()->user()->createToken('auth_token');
return response()->json([
'token' => $token,
]);
}
return response()->json(['error' => 'Invalid credentials'], 401);
}
Можете ли вы предложить решение?
Подробнее здесь: https://stackoverflow.com/questions/787 ... henticated
Мобильная версия