我有网络服务器。每个客户端都在服务器上,他们可以访问他们的Google驱动器文件。
我已经编写了Google驱动程序API的实现,但我遇到了令牌问题。
问题1 当一个人开始访问她的Google驱动器时,服务器需要一个访问令牌。首先,她问人是否真的需要访问该文档,如果有人点击"允许访问"服务器返回访问令牌和刷新令牌。服务器保存当前用户的刷新令牌。
然后,如果同一个人再来,服务器会看到她的刷新令牌,并自动生成一个新的访问令牌。用户无需点击"允许访问"再次,因为我们可以使用刷新令牌生成访问令牌。这是对的吗?因为刷新令牌永远存在,如果我们不手动撤销它(我不知道如何撤销它,但我知道如果我们不做任何事情它会永远存在)
问题2 如果以上是正确的 - 如何在服务器上保存刷新令牌?另一方面,我需要用户的标识符,不是吗?因为如果另一个人来,我应该使用她的刷新令牌生成她的访问令牌。如果我在DB中有她的刷新令牌,我应该找到。但如何查看如果我没有任何标识符?
我在API上没有任何用户标识符: https://developers.google.com/drive/v2/reference/about#resource
答案 0 :(得分:1)
1)这是正确的,您的应用在用户第一次授予访问权限时会收到访问令牌和刷新令牌。除非用户手动撤消,否则访问令牌是短暂的,而刷新令牌很少到期。当用户返回您的应用程序时,如果您有存储的刷新令牌,则可以使用它来检索访问令牌而无需任何用户交互
2)您应该使用永久存储解决方案,例如数据库。密钥应该是从用户信息服务中检索的用户ID。