使用 dingo/api连同 lucadegasperi/oauth2-server-laravel .对用户进行身份验证没问题,我得到了一个访问 token ,但每当我发出另一个请求时,我都会收到以下错误:
call_user_func() 期望参数 1 是一个有效的回调,没有给定数组或字符串
我正在使用 Service Provider option列在 dingo/api 文档中,它肯定设置了用户解析器(我在 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,
关于php - 尝试获取经过身份验证的用户时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33944481/