Google OAuth - 访问令牌和刷新令牌之间的区别 [重复]

Posted

技术标签:

【中文标题】Google OAuth - 访问令牌和刷新令牌之间的区别 [重复]【英文标题】:Google OAuth - Difference between ACCESS TOKEN and REFRESH TOKEN [duplicate] 【发布时间】:2021-06-16 07:04:03 【问题描述】:

所以,我知道 访问令牌 总是在用户登录时收到并且有效期为 1 小时。 并且刷新令牌也被接收,但仅在提示用户同意权限时。 这个刷新令牌可以离线使用。

我必须刷新访问令牌吗? 如果我只需要刷新令牌,那么访问令牌有什么意义? 我很困惑。

尤其是这段代码的意义何在?

    $refresh = $this->getRefreshToken();
    if ($refresh) 
        $res = $this->fetchAccessTokenWithRefreshToken($refresh);

【问题讨论】:

您只能使用访问令牌访问受保护的资源。您可以使用刷新令牌获取新的访问令牌,以防访问令牌过期。当您说刷新令牌可以离线使用时,我不确定您的意思。如果您无法访问您尝试授权的资源,那么身份验证令牌的意义何在? 【参考方案1】:

需要刷新令牌才能在过期后获取新的访问令牌。否则用户将不得不再次进行身份验证。 代码基本意思是:

$refresh = $this->getRefreshToken(); // Get me my refresh token
 if ($refresh)  // If I have a refresh token 
     // Here's my refresh token, get me a new access token
     $res = $this->fetchAccessTokenWithRefreshToken($refresh);

【讨论】:

以上是关于Google OAuth - 访问令牌和刷新令牌之间的区别 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

了解 Google OAuth2 刷新令牌

使用 OAuth 2.0 Google App Engine 刷新访问令牌

使用 OAuth 刷新令牌获取新的访问令牌 - Google API

如何从 passportjs 中的刷新令牌中获取新的 Google oauth 访问令牌

存储位置 - OAuth 2.0 中的访问令牌和刷新令牌

具有公共访问权限的 Web 应用程序的 Google OAuth 2.0 刷新令牌