首页 文章

OAuth 2.0令牌和终身

提问于
浏览
19

我想了解OAuth 2.0( SERVER SIDE FLOW ) . 让我们以Google联系人API为例 .

根据规格,我已经在Google上注册了我的应用程序并且拥有客户端ID和客户端密码 . 此外,我还提到了回调URL .

获取访问令牌需要我这样做

  • 将用户重定向到具有所需查询字符串和 Headers 的特定网址,如Google网站上的OAuth文档中所述(https://accounts.google.com/o/oauth2/auth bla bla stuff)

  • 用户输入凭据后,会将其发送回我在APP中已注册的APP中提到的回拨网址 . 这里查询字符串参数&code = 4 / P7q7W91a-oMsCeLvIaQm6bTrgtp6 bla bla也附加到回叫URL . 因此现在有了授权码

  • 现在,我向https://accounts.google.com/o/oauth2/token发送一个请求,其中包含我在上一步中获得的授权码,以便获得访问令牌和刷新令牌 .

一旦我有了这个“访问令牌”,我就可以访问(比如联系API和获取用户联系人)

到目前为止,一切都很好 . 我也理解访问令牌的生命周期有限,我们可以使用“刷新令牌”获取新的访问令牌 .

A.作为开发人员,我有责任存储并检查“访问令牌”是否有效吗?

B.如果我的网站是一个“使用Google / FB / twitter登录”帐户的公共网站,我怎么知道它是2天后返回网站的同一个用户而我不需要他要求登录用户应该自动登录到站点? cauz我不希望他通过授权程序,因为他们已经授权我的应用程序 .

E.G:我已经使用我的FB登录登录TechCrunch网站,可以评论文章 . 现在即使在1周后如果我访问TechCrunch,我也不必再次登录 . 他们怎么知道我和我已经认证了?

1 回答

  • 15
    • 使用OAuth 2.0时,您将获得一个访问令牌,该令牌具有随之发送的过期时间 . 您可以跟踪它何时到期,或者您可以继续使用它,直到您收到INVALID_TOKEN错误 . 然后,您需要调用刷新令牌服务以获取新的访问令牌 . 您的刷新令牌在撤销之前是好的 .

    • 这是OpenID,而不是OAuth . 流程类似,但用于将用户登录到您的服务中 . OAuth用于从其他帐户检索用户的数据 .

相关问题