AppServiceProvider.php
Код: Выделить всё
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
Gate::define('alwaysTrue', function () {
return true;
});
}
}
Код: Выделить всё
public function materiales_pedido($pedido_id)
{
if (! Gate::allows('alwaysTrue')) {
return response()->json(['message' => 'Unauthorized'], 401);
}
$results = [];
return $results;
}
Вот мой маршрут api.php
Код: Выделить всё
Route::get('/materiales_pedido/{pedido_id}', [PedidosConsultas::class, 'materiales_pedido']);
Даже если я добавлю ->middleware('auth:sanctum');
Я использую аутентификацию на основе сеанса Sanctum SPA для своего веб-приложения.
Я использую аутентификацию на основе сеанса Sanctum SPA для своего веб-приложения.
Даже если я добавлю ->middleware('auth:sanctum');
code> на маршрут, на котором ошибка продолжается.
Это мой вызов axios:
Код: Выделить всё
const fetchMateriales = async () => {
try {
await axios.get('/sanctum/csrf-cookie');
console.log(pedidoId);
const response = await axios.get(`http://127.0.0.1:8000/api/materiales_pedido/${pedidoId}`, {
headers: {
'content-type': 'application/json'
}
});
piezas.value = response.data;
piezas.value.forEach(pieza => {
pieza.cantidad_state = 'max';
});
console.log(piezas.value);
} catch (error) {
console.error('There was an error fetching the materialesPedidos:', error);
}
};
Код: Выделить всё
public function authenticate(Request $request){
$credentials = $request->validate([
'email' => ['required', 'email'],
'password' => ['required'],
]);
if (Auth::attempt($credentials)) {
$user = auth()->user();
$emailVerified = !is_null($user->email_verified_at);
$request->session()->regenerate();
return response()->json([
'success' => true,
'email_verified' => $emailVerified,
],200); }
return response()->json([
'message' => 'The provided credentials do not match our records.',
], 401);
}
--ВАЖНО ---
Когда я меняю маршрут с api.php на web.php, он работает, ЕСЛИ я получаю доступ к этому маршруту web.php ПРЯМО через свой браузер, но если я получаю доступ к этому маршруту web.php ЧЕРЕЗ AXIOS, я все равно получаю ту же ошибку 401,
но я не настолько опытен, чтобы знать, что может вызвать это, поскольку я студент, пытающийся изучить полный стек.
Я был бы очень признателен за вашу помощь.
Я пытался связать маршрут от api.php до web.php, но результат был неоднозначным в зависимости от того, обращаюсь ли я к нему напрямую или через axios.>
Подробнее здесь: https://stackoverflow.com/questions/787 ... authorized