是否可以使用oauth2手动验证用户

时间:2012-10-22 12:43:54

标签: android google-drive-api

我想使用oauth2对用户进行身份验证以访问Google驱动器。使用AccountManager检索帐户然后获取令牌时,我可以获得所需的访问令牌:

mgr.blockingGetAuthToken(account, ApiConst.DRIVE_AUTH_SCOPE, true);

但我希望用户能够通过提供用户名和密码进行身份验证,而不是使用添加到手机中的帐户。这可能吗?

修改

所以我尝试在WebView中实现授权。我跟着this example。我已经解压缩了代码请求参数,但是用于检索访问令牌的代码似乎已被弃用,并且与Google Drive SDK使用的软件包不兼容。这是用于在示例中检索访问令牌的代码:

AccessTokenResponse accessTokenResponse = new GoogleAuthorizationCodeGrant(new NetHttpTransport(),
new JacksonFactory(),
OAuth2ClientCredentials.CLIENT_ID,
OAuth2ClientCredentials.CLIENT_SECRET,
code,
OAuth2ClientCredentials.REDIRECT_URI).execute();

这可以通过其他方式完成,还是应该放弃?

1 个答案:

答案 0 :(得分:0)

如果您使用的是Android,则不需要执行所有操作来验证用户身份。 只需使用“GoogleAccountCredential”对象设置用户的帐户:

GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(this, scopes);
credential.setSelectedAccountName(theGoogleAccount);

请记住,对于您需要的精选用户帐户:

startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT);

然后您就可以初始化云端硬盘了:

Drive service = new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential).build();

问候。