从google-calendar-API获取详细信息而无需帐户链接

时间:2019-02-19 07:19:54

标签: node.js authentication oauth-2.0 google-calendar-api google-oauth2

我要完成的工作是,考虑到我拥有所有必需的令牌(accessToken,refreshToken,授权等),但没有帐户链接,是否有任何可能的方法可以使用Node从google-calendar-API中获取详细信息.js,我已经尝试使用快速入门代码赋予here。它可以完美完成工作,但具有帐户关联。

我知道这个问题听起来很奇怪,但是我认为,即使我拥有从google-calendar-API(资源服务器)提取数据所需的所有令牌,请求也将如何从哪个帐户知道数据将被提取。令牌中是否有任何accountID,只会将数据请求到该特定帐户。

请分享您的想法。 如果我错了,请纠正我。

谢谢

编辑:我的意思是通过帐户链接,输入帐户凭据并登录

1 个答案:

答案 0 :(得分:0)

我不是100%肯定我了解您的问题。

当用户登录并授予您的应用程序对Google日历api的访问权限时。授予访问令牌和刷新令牌。通过将您的应用程序指定为google,刷新令牌仅可与您的客户ID一起使用。访问令牌和刷新令牌也由特定用户授予,并且将仅能够检索该用户的数据。有问题的用户还授予您的应用程序对其google日历数据的访问权限,这意味着该访问令牌将仅由您的应用程序用来访问google日历数据,而不是google驱动器数据。

这些令牌中存储的声明告诉Google哪个应用程序代表哪个用户访问数据。

如果您想访问Google上的用户信息,则需要他们登录并同意访问他们的数据。这称为身份验证和授权。

帐户关联是完全不同的。

帐户关联

可以说我在我们的网站上有一个网站,我们有自己的用户系统,用户在该系统中创建帐户,并将其存储在数据库中。用户在我们的系统上具有用于登录的登录名和密码。

现在,如果我们想为用户提供使用其Facebook和Google帐户登录的选项,该怎么办。如果他们这样做,他们可能最终会创建一个新帐户。或者我们可以允许帐户关联

帐户链接是一种将在一个系统上登录的用户与在另一个系统上登录的用户相关联的方法。因此,当用户使用其Google帐户登录时,我们从用户数据库中知道其John Snow也是Google上的北方之王。帐户已链接。因此,我知道北方之王使用他的Google帐户登录时,实际上是我们系统上名为John Snow的用户。

从技术上讲:我仅使用asp .net core进行了此操作,但这是它的工作原理。 John Snow登录到我们的系统。我们给他一个按钮来连接他的Google帐户。 John单击按钮并登录到Google。 Google返回了“北方之王”的用户ID,我将其与我们系统上的John Snows用户ID关联。

打开ID

帐户链接与其Authentication相比,更具开放性。进行此操作的人已经输入了他们的登录名和密码,并对其进行了自我认证。

Oauth2

Oauth2是您的访问令牌和刷新令牌,用于获取对API的访问权限。这称为Authorization,您有权访问数据,但是使用访问令牌和刷新令牌的用户不一定是将请求发送到api的用户。