Я пытаюсь понять, возможно ли использовать обычные маршруты аутентификации Laravel с блейдами / представлениями для базовой аутентификации, затем загрузить SPA (Vue.js со своим собственным маршрутизатором) и делать вызовы API через Dingo?
На данный момент у меня есть это на вершине моего routes.php
, который работает:
// All routes through web middleware
Route::group(['middleware' => 'web'], function () {
// Authentication
Route::auth();
// Authenticated routes
Route::group(['middleware' => 'auth'], function () {
// Load main SPA
Route::get('/', 'AppController@spa');
});
});
app.domian.com/
защищен с помощью Auth, и это тот маршрут, который использует SPA. Я использую стандартные встроенные страницы Laravel Auth (не SPA), поэтому, когда пользователь входит в систему или регистрируется, он разрешает доступ к домашнему маршруту и загружает SPA.
С этого момента я хотел бы использовать Динго. Так что звонки app.domian.com/api/*
все обрабатываются Динго.
Я добавил это в тот же файл маршрутов:
$api = app('Dingo\Api\Routing\Router');
$api->version('v1', function($api) {
$api->group(['middleware' => 'auth'], function ($api) {
// API prefix: api
$api->get('user', function($api) {
return Auth::user();
});
});
});
Это не похоже на работу.
Можно даже использовать Dingo таким образом, или я должен лишиться встроенного Auth для чего-то вроде JWT. Я надеюсь сделать это в будущем, но сейчас мне просто нужно, чтобы это заработало.
вам нужно заменить auth
с api.auth
в промежуточном программном обеспечении.
$api->group(['middleware' => 'api.auth'], function ($api) {
// API prefix: api
$api->get('user', function($api) {
return Auth::user();
});
});
Других решений пока нет …