Php 对所有其他路线使用内置的Laravel 5.2认证和加载SPA,然后加载野狗API

Php 对所有其他路线使用内置的Laravel 5.2认证和加载SPA,然后加载野狗API,php,laravel,authentication,laravel-5.2,dingo-api,Php,Laravel,Authentication,Laravel 5.2,Dingo Api,我正在尝试确定是否可以使用常规的Laravel身份验证路由和blade/views for basic Auth,然后加载SPA(Vue.js和它自己的路由器),并通过Dingo调用API 目前,我在我的routes.php的顶部有一个: // All routes through web middleware Route::group(['middleware' => 'web'], function () { // Authentication Route::auth

我正在尝试确定是否可以使用常规的Laravel身份验证路由和blade/views for basic Auth,然后加载SPA(Vue.js和它自己的路由器),并通过Dingo调用API

目前,我在我的
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授权页面(非SPA),因此当用户登录或注册时,它允许访问主路由并加载SPA

我想做的是从现在开始使用野狗。所以对app.domian.com/api/*的调用都是由Dingo处理的

我已将此添加到同一路由文件中:

$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();
        });

    });

});
这似乎不起作用


它甚至有可能以这种方式使用野狗,或者我必须放弃像JWT这样的东西的内置授权。我希望将来能这样做,但现在我只需要让它工作。

您需要在中间件中将
auth
替换为
api.auth

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

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

});