簡體   English   中英

League \\ OAuth2 \\ Client \\ Provider \\ GenericProvider SSL錯誤

[英]League\OAuth2\Client\Provider\GenericProvider SSL error

我使用了“ league / oauth2-client”庫,並嘗試從提供程序獲取訪問令牌。 我的第一步是使授權代碼正常工作。 當我請求提供者訪問令牌時,出現了類似“ cURL錯誤51:SSL:沒有其他證書主題名稱與目標主機名'XXX.XXX.com”匹配的異常”。

我使用郵遞員通過給定適當參數手動獲取訪問令牌。 工作正常,提供商將訪問令牌返回給郵遞員。

https://github.com/thephpleague/oauth2-client

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    'clientId' => 'XXX',
    'clientSecret' => 'YYY',
    'redirectUri' => 'https://exampleclient.com/oauth',
    'urlAuthorize' => 'https://example.com/OAuth2AuthorizationServer/AuthorizationController',
    'urlAccessToken' => 'https://example.com/oauth/AccessTokenController',
    'urlResourceOwnerDetails' => 'https://example.com/oauth/ResourceController',
    'scopes' => array('BLABLA'),
    'verify' => false,
]);

try {
    $accessToken = $provider->getAccessToken('authorization_code', [
        'code' => $_GET['code']
    ]);

    echo 'Access Token: ' . $accessToken->getToken() . "<br>";
    echo 'Refresh Token: ' . $accessToken->getRefreshToken() . "<br>";
    echo 'Expired in: ' . $accessToken->getExpires() . "<br>";
    echo 'Already expired? ' . ($accessToken->hasExpired() ? 'expired' : 'not expired') . "<br>";

    $resourceOwner = $provider->getResourceOwner($accessToken);
    var_export($resourceOwner->toArray());
    die;

    } catch (Exception $e) {

        // Failed to get the access token or user details.
        exit($e->getMessage());
    }

League / oauth2-client庫使用GuzzleHttp \\ Client,因此我們需要設置

GuzzleHttp\\RequestOptions::VERIFY => false

執行此操作的最簡單方法是創建一個新的GuzzleHttp \\ Client並將其VERIFY選項設置為false。

$guzzyClient = new GuzzleHttp\Client([
    'defaults' => [
        \GuzzleHttp\RequestOptions::CONNECT_TIMEOUT => 5,
        \GuzzleHttp\RequestOptions::ALLOW_REDIRECTS => true],
     \GuzzleHttp\RequestOptions::VERIFY => false,
]);

$provider->setHttpClient($guzzyClient);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM