Laravel 11 Простейший шлюз, но возврат всегда несанкционированPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Laravel 11 Простейший шлюз, но возврат всегда несанкционирован

Сообщение Anonymous »

Я пытаюсь создать шлюз, чтобы только некоторым пользователям было разрешено выполнять определенные вызовы API, но перед этим мне нужно хотя бы правильно настроить шлюз, чего я, похоже, не могу сделать. >
Здесь я настроил шлюз:
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;
}
Фактическая функция контроллера длиннее, но я думаю, что это не имеет значения, поскольку это всего лишь несколько SQL-запросов, и он работает, когда я удаляю часть шлюза.
Вот мой маршрут api.php

Код: Выделить всё

Route::get('/materiales_pedido/{pedido_id}', [PedidosConsultas::class, 'materiales_pedido']); 
Я использую аутентификацию на основе сеанса 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);
}
Не знаю, что это может быть. Я также пытался удалить все кеши, и ChatGPT в этом не особо помог. Я не менял никаких промежуточных программ, поставляемых с laravel 11, и даже не вижу их, поскольку теперь они скрыты в Laravel11.
ВАЖНО
Когда я меняю маршрут с api.php на web.php, это работает, ЕСЛИ я получаю доступ к этому маршруту web.php ПРЯМО через свой браузер, но если я получаю доступ к этому маршруту web.php ЧЕРЕЗ AXIOS, я все равно получаю то же самое Ошибка 401,
но я не настолько опытен, чтобы знать, что может вызвать это, поскольку я студент, пытающийся изучить полный стек.
Я был бы очень признателен за ваше help.
Я пытался связать маршрут от api.php до web.php, но это дает неоднозначные результаты в зависимости от того, обращаюсь ли я к нему напрямую или через axios.

Подробнее здесь: https://stackoverflow.com/questions/787 ... authorized
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Laravel 11 Простейший шлюз, но возврат всегда несанкционирован
    Anonymous » » в форуме Php
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • 401 несанкционирован для ExecuteQuery в SharePoint CSOM
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Удаленный сервер вернул ошибку: (401) Несанкционирован при запросе данных RESTAPI
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Проблема с аутентификацией IFRAME: 401 Несанкционирован для частных API (React Frontend, Backend Python)
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Удаленный сервер вернул ошибку: (401) Несанкционирован при запросе данных RESTAPI
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»