【问题标题】:How to reload a users authorization如何重新加载用户授权
【发布时间】:2020-04-12 03:27:33
【问题描述】:

我正在使用 Google 日历 API。

我在索引页面上对用户进行身份验证以记录 $_GET['code'],我必须在索引处执行此操作,因为我需要获取变量以从 php 添加事件。我的印象是令牌正在更改并导致错误(我可以通过断开连接和重新连接来避免)。

这是我的索引页面上与 google 的连接:

$client = new Google_Client();
$client->setAuthConfig('client_secret.json');
$client->addScope(Google_Service_Calendar::CALENDAR);
$client->setRedirectUri($monsite);
$client->setAccessType('offline');
$client->setIncludeGrantedScopes(true);
if (isset($_GET['code'])) {
    $client->authenticate($_GET['code']);
    $_SESSION['oauth'] = $client->getAccessToken();
}
if (!isset($_SESSION['oauth'])) {
    $auth_url = $client->createAuthUrl();
    header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
    die();
}

另外,我正在创建的活动有创建者和来宾。这不是我想要的,我宁愿在日历上插入一个事件,而不询问这个人是否有兴趣(因为他们是)。

这是我的 PHP 页面的事件部分:

$event = new Google_Service_Calendar_Event(array(
    'summary' => $client. " / " .$contrat,
    'location' => $adresse,
    'description' => $desc,
    'start' => array(
      'dateTime' => $start,
      'timeZone' => 'Europe/Paris',
    ),
    'end' => array(
      'dateTime' => $end,
      'timeZone' => 'Europe/Paris',
    ),
    'attendees' => $invites,
));

因此,我希望不再有客人,而是会提前通知的“创作者”。

回顾一下,我有两个问题:

1- 如何保持/重新加载用户身份验证。

2- 如何将事件转化为“任务”。

我不确定我是否很清楚,我可能会问很多,但这可能对我有很大帮助。

无论如何,提前感谢您的回答! :)

【问题讨论】:

  • 存储刷新令牌,因为您将能够使用它来请求新的访问令牌。访问令牌只适用于一个小时,存储那些没有帮助。你需要一个人的权限才能访问他们的日历,所以你总是要问。不知道你所说的任务是什么意思谷歌日历有事件而不是任务。

标签: php google-api google-calendar-api google-oauth google-api-php-client


【解决方案1】:

您可能使用setTokenCallback(); 自动刷新令牌可能会对您有所帮助。 这是 usaqe:https://github.com/googleapis/google-api-php-client/issues/1758

缓存解析的token需要清除,为什么? 客户端将缓存访问令牌以调用具有相同范围的相同服务。要更改令牌,

$client->setAccessToken($token1);
// <call 1>

$client->getCache()->clear();

$client->setAccessToken($token2);
// <call 2>

这里是问题:https://github.com/googleapis/google-api-php-client/issues/1672

这就是为什么要更改令牌:Why caching access token is consider bad in oauth2?

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 1970-01-01
    • 2011-04-17
    • 2015-05-10
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    相关资源
    最近更新 更多