Я использую Laravel 5.3 с API Dingo, и я пытаюсь получить OAuth 2.0 от Laravel (aka Passport) для работы с аутентификацией Dingo.Настройка OAuth 2.0 Laravel - это Dingo API
я добавил поставщика OAuth 2.0 в config/api.php
, который я нашел 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
с этой ошибкой:
Call to undefined method Closure::authenticate()
Полный ответ JSON (который включает в себя след) можно найти here
К сожалению the docs едва упомянуть создание Динго с league/oauth2-server
, что и Laravel использует
Так что я бы с помощью JWT вместо OAuth 2.0 в этом случае? – OverCoder
Я надеюсь, что так, это заставило бы его работать .. !! –
Но я все еще хочу пройти аутентификацию через OAuth 2.0, этот конфиг отключит OAuth 2.0, не так ли – OverCoder