0

私は Dingo API で Laravel 5.3 を使用しており、Laravel の OAuth 2.0 (別名 Passport) を Dingo の認証で動作させようとしています。

OAuth 2.0 プロバイダーを に追加しましたconfig/api.php。これは次の場所にあります

'auth' => [
    'oauth' => function($app) {
        $provider = new Dingo\Api\Auth\LeagueOAuth2Provider($app['oauth2.resource-server']);

        $provider->setUserCallback(function($id) {
            return User::find($id);
        });

        $provider->setClientCallback(function($id) {
            return Client::find($id);
        });
        return $provider;
    }
]

そしてapi.auth、ルートにミドルウェアを追加しました。

$api = app('Dingo\Api\Routing\Router');

$api->version('v2', function($api) {
    # ...
    $api->get('test', ['middleware' => 'api.auth', 'App\Http\Controllers\v2\SnippetController@test']);
});

をリクエストする/api/testと、次のエラーを含む500HTTP レスポンスが返されます。

Call to undefined method Closure::authenticate()

完全な JSON 応答 (トレースを含む) は、ここにあります。

悲しいことに、ドキュメントleague/oauth2-serverでは、Laravel が使用する でDingo をセットアップすることについてほとんど言及していません。

4

2 に答える 2