Используйте встроенную аутентификацию Laravel 5.2 и загрузите SPA, а затем Dingo API для всех других маршрутов.

Я пытаюсь понять, возможно ли использовать обычные маршруты аутентификации 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. Я надеюсь сделать это в будущем, но сейчас мне просто нужно, чтобы это заработало.

3

Решение

вам нужно заменить auth с api.auth в промежуточном программном обеспечении.

$api->group(['middleware' => 'api.auth'], function ($api) {

// API prefix: api
$api->get('user', function($api) {
return Auth::user();
});

});
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]