【问题标题】:League\OAuth2\Client\Provider\GenericProvider SSL errorLeague\OAuth2\Client\Provider\GenericProvider SSL 错误
【发布时间】:2019-11-03 00:00:01
【问题描述】:

我使用“league/oauth2-client”库并尝试从提供者那里获取访​​问令牌。我的第一步是让授权码正常工作。当我向提供商请求访问令牌时,我收到了类似“cURL 错误 51:SSL:没有替代证书主题名称与目标主机名 'XXX.XXX.com' 匹配”之类的异常。

我使用 Postman 通过给定的适当参数手动获取访问令牌。它工作正常,提供商将访问令牌返回给邮递员。

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());
    }

【问题讨论】:

    标签: php ssl curl oauth-2.0


    【解决方案1】:

    league/oauth2-client 库使用 GuzzleHttp\Client 所以我们需要设置

    GuzzleHttp\RequestOptions::VERIFY =&gt; 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);
    

    【讨论】:

      猜你喜欢
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 2020-08-19
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多