Laravel signedURL генерирует неправильный URL-адрес при использовании программного обеспечения api middlware

У меня есть интерфейс, работающий на Nuxt и Laravel в качестве серверной службы. Когда я генерирую подписанный URL-адрес с помощью промежуточного программного обеспечения Laravel API - путь включает "api" в URL-адресе, что приводит к исключению страницы, не найденной на стороне Nuxt.

Итак, вот шаги, чтобы лучше понять, что происходит:

  1. Пользователь нажимает кнопку в приложении Nuxt и отправляет запрос ajax в Laravel API.
  2. Контроллер API генерирует подписанный URL

$signedUrl = URL::signedRoute('register', ['email' => $this->request->email, 'group_id' => $this->request->group_id], null, false);

  1. Созданный URL-адрес включает в себя "api" в пути, к которому, конечно же, нельзя получить доступ.http://localhost:3000/api/register?email=ss%40gmail.com&group_id=2&signature=ce4fba05bf5ccae6ea20a6043a47ca11de603238214deda7202d19f2989272cb

Есть ли способ избавиться от /api/ из сгенерированного URL-адреса? Я пробовал установить 4-й параметр (абсолютный) в методе signedRoute на false, но это не помогает.

1 ответ

Решение

Маршруты api по умолчанию имеют префикс api, как показано в вашем RouterProvider:

    protected function mapApiRoutes()
    {
        Route::prefix('api')
               ...;
    }

Когда вы генерируете подписанный URL, для вашего маршрута 'register' который использует префикс api, сгенерированный URL будет таким, как ожидалось: www.mydomain.com/api/register?...

Другие вопросы по тегам