Laravel signedURL генерирует неправильный URL-адрес при использовании программного обеспечения api middlware
У меня есть интерфейс, работающий на Nuxt и Laravel в качестве серверной службы. Когда я генерирую подписанный URL-адрес с помощью промежуточного программного обеспечения Laravel API - путь включает "api" в URL-адресе, что приводит к исключению страницы, не найденной на стороне Nuxt.
Итак, вот шаги, чтобы лучше понять, что происходит:
- Пользователь нажимает кнопку в приложении Nuxt и отправляет запрос ajax в Laravel API.
- Контроллер API генерирует подписанный URL
$signedUrl = URL::signedRoute('register', ['email' => $this->request->email, 'group_id' => $this->request->group_id], null, false);
- Созданный 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?...