在 AoG 中通过 OAuth 获取关于 Actions on Google 的用户信息?
Obtain user information on Actions on Google Through OAuth in AoG?
Account Linking
提供了几种将用户链接到他们自己的帐户的方法,例如他们的 Google 帐户或 Twitter 帐户。
我在Actions on Google
网站选择了OAuth来做OAuth 2.0 Authorization Code Grant
获取access token以换取数据资源。当我将用户链接到启用了 Google 帐户 Google Sign-In
时,获取用户信息很容易,因为数据存储在 payload
下,但 OAuth 实现似乎不会生成用户数据在 payload
下 User object
内。
在这种情况下,我是否应该向第三方发出 API 调用以获取用户数据并将该个人数据存储到数据库中?我想知道是否有 Google 代表开发人员准备的方法。如果没有,那么通过说 'Hello, {person name}' 变得乏味来问候再次访问我的应用程序的用户...
你有两个选择Account Linking。
在您描述的情况下,您要提供一个 OAuth endpoint 并从 Google 助理获得一个 auth 令牌,并且您有责任获取此令牌并使用它可以确定用户是谁,这样你就可以得到你所知道的关于他的任何信息。令牌是 您 颁发和控制的令牌,因此大概您的数据库中已经有了该信息。如果您正在重复使用来自其他服务的令牌,该服务应该能够告诉您他们是谁。
听起来您正在使用 Google 登录,但是,在这种情况下,使用 Google Sign In for Assistant 更容易。一旦用户登录到您的服务(通过应用程序或网络应用程序)并授予您的服务权限,他们也将能够通过智能助理获得访问权限。您将获得一个 id 令牌,可以对其进行解码以获取有关用户的个人资料信息,包括他们的 Google ID 和姓名。
Account Linking
提供了几种将用户链接到他们自己的帐户的方法,例如他们的 Google 帐户或 Twitter 帐户。
我在Actions on Google
网站选择了OAuth来做OAuth 2.0 Authorization Code Grant
获取access token以换取数据资源。当我将用户链接到启用了 Google 帐户 Google Sign-In
时,获取用户信息很容易,因为数据存储在 payload
下,但 OAuth 实现似乎不会生成用户数据在 payload
下 User object
内。
在这种情况下,我是否应该向第三方发出 API 调用以获取用户数据并将该个人数据存储到数据库中?我想知道是否有 Google 代表开发人员准备的方法。如果没有,那么通过说 'Hello, {person name}' 变得乏味来问候再次访问我的应用程序的用户...
你有两个选择Account Linking。
在您描述的情况下,您要提供一个 OAuth endpoint 并从 Google 助理获得一个 auth 令牌,并且您有责任获取此令牌并使用它可以确定用户是谁,这样你就可以得到你所知道的关于他的任何信息。令牌是 您 颁发和控制的令牌,因此大概您的数据库中已经有了该信息。如果您正在重复使用来自其他服务的令牌,该服务应该能够告诉您他们是谁。
听起来您正在使用 Google 登录,但是,在这种情况下,使用 Google Sign In for Assistant 更容易。一旦用户登录到您的服务(通过应用程序或网络应用程序)并授予您的服务权限,他们也将能够通过智能助理获得访问权限。您将获得一个 id 令牌,可以对其进行解码以获取有关用户的个人资料信息,包括他们的 Google ID 和姓名。