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 回答