oAuth协议中accessToken的过期日期

本文关键字:过期 日期 accessToken 协议 oAuth | 更新日期: 2023-09-27 18:26:25

我正在使用dotNetOpenAuth对Google oAuth提供商进行授权。

我有点困惑于以下之间的区别:

consumerTokenconsumerSecretaccessToken

从提供者那里,我得到了某个用户的accessToken。能让我永远保持下去吗?还是过期了?

代码如何在不将用户重定向到"允许访问我的谷歌数据页面"的情况下启用授权?

oAuth协议中accessToken的过期日期

不要期望对accessToken的寿命有任何期望。在任何时候,你都可以收到403 HTTP错误,该错误应该在你的应用程序中触发以下内容:

  • 如果您有一个refreshToken,那么在没有资源所有者(最终用户)交互的情况下获得一个新的accessToken
  • 如果没有,请再次要求用户授权您的应用程序
您正在使用的

OAuth 1.0不包括预测访问令牌何时过期的规定,因此您必须阅读谷歌关于OAuth 2.0访问令牌的文档,以了解它们的使用时间。

代码如何在不将用户重定向到"允许访问我的谷歌数据页面"的情况下启用授权?

你没有。如果你能做到这一点,那将是一个巨大的安全漏洞。用户必须授权您的应用程序才能访问他/她的数据。然而,一旦您获得了一次授权,通过存储您获得的访问令牌(及其机密),您应该能够在未来使用它,并避免用户授权步骤(直到用户撤销令牌或令牌到期)。

OAuth中的"AccessToken"通常具有相对较短的到期时间(即在Facebook和Messenger的情况下不到一天)。如果实现支持它,那么"refreshToken"是您可以保留更长时间的(周/月的范围取决于提供商)。

根据文件(https://developers.google.com/accounts/docs/OAuth2)谷歌支持刷新代币,所以如果你想存储代币,那就是它。

请注意,accessToken和refreshToken都代表非常敏感的信息(相当于明文用户名和密码),因此请查看提供商关于存储这些信息的建议和要求。