我将 Laravel 5.3 与 Dingo API 一起使用,并且我正在尝试让 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
,我收到500
带有此错误的 HTTP 响应:
Call to undefined method Closure::authenticate()
完整的 JSON 响应(包括跟踪)可以在这里找到
遗憾的是,文档league/oauth2-server
几乎没有提到使用 Laravel设置 Dingo