1

私のクライアントでは、次のルートを使用して認証トークンを取得しています。

    Route::get('/redirect', function () {
    $query = http_build_query([
        'client_id' => '1',
        'redirect_uri' => 'http://localhost:8001/callback',
        'response_type' => 'code',
        'scope' => ''
    ]);

    return redirect('http://localhost:8000/oauth/authorize?'.$query);
});


Route::get('/callback', function (Illuminate\Http\Request $request) {
    $http = new \GuzzleHttp\Client;

    $response = $http->post('http://localhost:8000/oauth/token', [
        'form_params' => [
            'client_id' => '1',
            'client_secret' => 'secret-code',
            'grant_type' => 'authorization_code',
            'redirect_uri' => 'http://localhost:8001/callback',
            'code' => $request->code,
        ],
    ]);
    return json_decode((string) $response->getBody(), true);
});

しかし、 http://localhost:8001/redirectを参照すると、http 認証が要求されます。認証が必要な理由とその解決方法

ここに画像の説明を入力

4

1 に答える 1

1

今日も同じ問題が発生し、その解決に多くの時間を費やしました。

ようやく原因がわかりました。無効なクライアント (間違った clientID または間違った秘密鍵) を提供すると、Passport によって WWW-Authenticate ヘッダーが返されるようです。

実際、資格情報にエラーがありました。それらを修正したところ、問題は解決しました。

お役に立てれば :)

于 2017-02-02T20:01:03.047 に答える