我在我的安卓应用程序中实现了谷歌的一键登录/登录,通过它我使用oneTapClient.getSignInCredentialFromIntent(result.data)获得了SignInCredential类型的凭据。我可以进一步从这个SignInCredential对象中获取idToken。
此外,我想使用Drive API访问用户的Google Drive (我已经启用了该API并从API控制台中选择了所需的作用域),我假设这需要我实现如下所示的OAuth2流程:
val cred = GoogleAccountCredential.usingOAuth2(this,Collections.singleton(Scopes.DRIVE_FILE))
cred.selectedAccount
val googleDriveService = com.google.api.services.drive.Drive.Builder(AndroidHttp.newCompatibleTransport(), GsonFactory(), cred )
.setApplicationName(getString(R.string.app_name))
.build()我的问题是,如何处理从One-Tap流程中获得的idToken?我是否应该以某种方式将其传递给OAuth2调用?我提到了this oauth2 documentation和these docs of Google API Clients for Java,但他们都没有回答前面提到的问题。如果有的话,如何进一步“接收”oauth令牌?
提前谢谢你。
发布于 2021-10-14 10:09:26
One-Tab是一种面向帐户创建和登录的服务。如overview文档所述:
只需轻点一下,他们(用户)就可以通过您的服务获得安全的、基于令牌的、无密码的帐户,并受到其谷歌帐户的保护
另一方面,如果您希望以用户身份与OAuth进行交互,则需要使用API 2.0。方法,以便处理身份验证流。此服务独立于One-Tap,因此每个服务都需要不同的令牌。如果你需要使用Drive API,你可以按照这个quickstart来开发一个工作的OAuth 2.0令牌流。
https://stackoverflow.com/questions/69505564
复制相似问题