Php Laravel Passport oauth/authorize返回基本身份验证

Php Laravel Passport oauth/authorize返回基本身份验证,php,yii,oauth,laravel-5.3,laravel-passport,Php,Yii,Oauth,Laravel 5.3,Laravel Passport,我尝试在LaravelPassport上创建oauth2服务器,并从第三方应用程序进行测试。Oauth服务器使用Laravel,客户端使用Yii框架。我无法修改客户端前端,我创建了一个路由/api/oauth/login,将请求转发到oauth服务器: public function actionOauthLogin() { $query = http_build_query([ 'client_id' => '12', 'client_secret' =

我尝试在LaravelPassport上创建oauth2服务器,并从第三方应用程序进行测试。Oauth服务器使用Laravel,客户端使用Yii框架。我无法修改客户端前端,我创建了一个路由/api/oauth/login,将请求转发到oauth服务器:

public function actionOauthLogin()
{
   $query = http_build_query([
       'client_id' => '12',
       'client_secret' => '',
       'redirect_uri' => 'http://client.loc/api/oauth/callback',
       'response_type' => 'code',
       'scope' => '',
   ]);
   return $this->redirect('http://oauth-server.loc/oauth/authorize?' . $query);
}
此方法处理/api/oauth/回调路由:

public function actionOauthCallback()
{
    $http = new Client();
    $response = $http->post('http://oauth-server.loc/oauth/token', [
        'form_params' => [
            'grant_type' => 'authorization_code',
            'client_id' => '3',
            'client_secret' => 'TJDyfygkuga45rtyfj8&65567Yhhgjjjj',
            'redirect_uri' => 'http://client.loc/api/oauth/callback',
            'code' => Yii::app()->request->getParamFromRequest('code'),
        ],
    ]);
    return json_decode((string) $response->getBody(), true);
 }

所有这些都在文档中实现。但是当我打开/api/oauth/login,将重定向转发到oauth server.loc/oauth/authorize?{params}时,我看到了一个http基本身份验证窗口。世界跆拳道联盟?Nginx没有这样的设置。有人知道我做错了什么?请帮帮我。

我也有同样的问题,在我的例子中,返回的参数告诉我我解析的范围无效;一些OAuth2API需要作用域,这可能就是问题所在

解决方案是将应用程序允许的作用域数组添加到AuthServiceProvider引导方法中

// ../app/Providers/AuthServiceProvider.php
// ...
    public function boot()
    {

        $this->registerPolicies();
        Passport::tokensCan([
            'manage-devices' => 'Manage devices',
            'place-orders' => 'Place orders',
            'check-status' => 'Check order status',
        ]);

//..

确保
'redirect\u uri'=>'http://client.loc/api/oauth/callback“
与保存在
oauth\u clients
表中的重定向url相同,具有匹配的
client\u id

您需要为“oauth\u clients”中的“personal\u access\u client”、“password\u client”列设置0”表,并将重定向uri设置为与请求中相同。

昨天我在Yii()上安装了phpleague oauth2客户端。但结果是一样的,我得到了完全相同的问题。你找到解决办法了吗@epod