我需要在我的 Web 应用程序中实现 Facebook 和 Google 登录。我还需要访问用户的 Facebook/Google+ 好友列表。我已经浏览了 Facebook 和 Google 的完整 OAuth2 文档。我理解了基本概念。例如,假设 Facebook 登录的步骤是:
- 用户将点击“FB登录”按钮。
- 用户将被要求登录 Facebook 并获得许可。如果用户允许,它将返回一个授权码。
- 现在我们将使用授权码来获取访问令牌。
- 我们可以将访问令牌存储在会话中以启动用户会话。
- 现在我们可以使用访问令牌来访问不同的用户资源。
现在我在第 3 步之后有些困惑。我们应该在每次用户登录时生成访问令牌还是将访问令牌存储在我们的数据库中?
如果我们将访问令牌存储在我们的数据库中,当用户在 10 天后访问我们的网站(假设他清除了浏览器 cookie)并再次单击“FB 登录”按钮时,我们如何重用它。因为当用户再次单击“FB 登录”按钮时,他将获得一个新的授权码,并且必须重新开始整个过程。如何识别该用户在我的数据库中已经拥有访问令牌?
任何帮助将不胜感激。