【问题标题】:(PHP) Is there a way to access refresh token from access token?(PHP) 有没有办法从访问令牌访问刷新令牌?
【发布时间】:2021-04-01 15:16:59
【问题描述】:

我正在使用 console.cloud.google。我生成了客户端 ID 和密码,将其保存到 json,但似乎我无法访问刷新令牌。

/**
 * @Route("/oauth2callback", name="oauth2-callback")
 * @Method("GET")
 */
public function index(Request $request)
{
    $code = $request->query->get('code');

    $client = new Google\Client();
    $client->setAuthConfig(__DIR__ . '/../AdsApi/client_secrets.json');
    $client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback');
    $client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);

    // Handle authorization flow from the server.
    if (! isset($code)) {
        $auth_url = $client->createAuthUrl();
        header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
    } else {
       $client->authenticate($code);

       $_SESSION['access_token'] = $client->getAccessToken();
       $_SESSION['refresh_token'] = $client->getRefreshToken();
       $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/';
       header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
    }

    return new Response();
}

函数 getAccessToken 返回一个数组,但 getRefreshToken 返回 null。有办法解决吗?

谢谢。

【问题讨论】:

    标签: php api token refresh


    【解决方案1】:

    好的,找到问题了。如果已经发送(第一次),Google 不会再发送一个刷新令牌。创建了一个新项目,它正在运行。

    【讨论】:

      猜你喜欢
      • 2021-12-17
      • 2019-01-13
      • 1970-01-01
      • 2020-04-14
      • 2015-09-27
      • 2019-06-29
      • 2019-09-29
      • 1970-01-01
      • 2020-03-10
      相关资源
      最近更新 更多