我使用带有Dingo API的Laravel 5.3,并试图让Laravel的OAuth 2.0(aka Passport)与Dingo的身份验证一起工作。设置Laravel的OAuth 2.0是Dingo API
我加入config/api.php
OAuth 2.0已提供,我发现here:
'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\[email protected]']);
});
当请求/api/test
,我得到一个500
带有此错误的HTTP响应:
Call to undefined method Closure::authenticate()
完整的JSON响应(包括跟踪),可以发现here
可悲的是the docs勉强提起设立流浪者与league/oauth2-server
,这是Laravel使用
用户所以我想在这种情况下使用的替代的OAuth 2.0 JWT? – OverCoder
雅我希望如此,它会使它工作..! –
但我仍然想通过OAuth 2.0进行身份验证,该配置将禁用OAuth 2.0不会 – OverCoder