oAuth 令牌用于多个服务

oAuth token for multiple services

我有一个 Dropbox 帐户,它是通过 Google 帐户登录创建的。 因此,我的 Dropbox 帐户已链接到 Google 帐户

我有一个 android 应用程序,我的用户可以通过 Google/Facebook 创建他们的帐户。

问题是,如果用户可以通过他的 Google 帐户登录我们的应用一次,然后使用这些相同的底层 google 凭据,用户会自动登录进入 Dropbox 帐户 [也许需要一个简单的 'OK' 按钮身份验证],这样他们就不需要输入两次登录凭据?

我计划使用 oAuth 来实现它。关于是否可能的任何指导都会有所帮助。我不期待代码,而是一些指导。

总的来说你问的是不可能的。 Google 发出的 credentials/assertions 是针对特定应用程序的,只有该应用程序应该接受这些凭据。 因此,当用户登录您的应用程序时,您会从 Google 获得一个凭据,表明这是针对您的应用程序的。 Dropbox 还接受来自 Google 的为 Dropbox 颁发的凭据。您的应用程序无法将一个应用程序转换为另一个应用程序(如果可以的话,这将是一个很大的安全问题,例如,一个应用程序可以登录用户的所有其他 apps/account 接受 Google expalple 银行帐户凭据)。

您想要做的是与来自 Dropbox 的 OAuth Apis 集成,当用户浏览它们时尝试预填充信息以使流程更容易。如果您为同一用户(已登录)发送 "user email" 到 Google OAuth 流程(让用户登录保管箱),他们可以轻松完成流程。 https://developers.google.com/identity/protocols/OpenIDConnect#sendauthrequest