尝试获取经过身份验证的用户时出错


Getting error trying to get authenticated user

使用dingo/api和lucadegaperi/oauth2服务器laravel。对用户进行身份验证是可以的,我会得到一个访问令牌,但每当我提出另一个请求时,我都会收到以下错误:

call_user_func() expects parameter 1 to be a valid callback, no array or string given

我使用的是dingo/api文档中列出的Service Provider选项,它肯定是在设置用户解析器(我在setUserResolver方法中对解析器进行了var_dump)。

下面是我的OauthServiceProvider。

<?php namespace App'Providers;
use Dingo'Api'Auth'Auth;
use Dingo'Api'Auth'Provider'OAuth2;
use App'User'User;
use Illuminate'Support'ServiceProvider;
class OAuthServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->app[Auth::class]->extend('oauth', function ($app) {
            $provider = new OAuth2($app['oauth2-server.authorizer']->getChecker());
            $provider->setUserResolver(function ($id) {
                return User::first();
                // Logic to return a user by their ID.
            });
            $provider->setClientResolver(function ($id) {
                // Logic to return a client by their ID.
            });
            return $provider;
        });
    }
    public function register()
    {
        //
    }
}

原来我完全不在我要找的地方。在config/api.php中,在我的身份验证设置中,我有

        'oauth2' => Dingo'Api'Auth'Provider'OAuth2::class,

应该只是

        'oauth' => Dingo'Api'Auth'Provider'OAuth2::class,