私はLaravel Passportでoauth2サーバーを作成し、サードパーティアプリケーションからテストしようとしています。 OauthサーバーはLaravelを使用し、クライアントはYiiフレームワークを使用します。私は、クライアントのフロントエンドを変更することができませんし、私はOAuthのサーバに要求を転送したルート/ API/OAuthの/ログインを作成:Laravel Passport oauth/authorizeは基本認証を返します
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基本認証ウィンドウが表示されます。 WTF? Nginxにはこのような設定はありません。私が間違っていることを誰かが知っていますか?お願い助けて。
昨日私はyii(http://oauth2-client.thephpleague.com/providers/implementing/)にphpleague oauth2クライアントをインストールしました。しかし結果は同じです。 – epod
私はまったく同じ問題を抱えています。あなたは解決策を見つけましたか? @epod – kirgy