3

我正在尝试确定是否可以使用带有刀片/视图的常规 Laravel 身份验证路由进行基本身份验证,然后加载 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 Auth 页面(非 SPA),因此当用户登录或注册时,它允许访问主路由并加载 SPA。

我想做的是从现在开始使用 Dingo。所以所有的调用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();
        });

    });

});

这似乎不起作用。

甚至可以以这种方式使用 Dingo,或者我必须放弃内置的 Auth 以获得 JWT 之类的东西。我希望将来能做到这一点,但现在我只需要让它工作。

4

1 回答 1

0

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

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

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

});
于 2016-04-29T17:58:02.453 回答