使用OAuth2令牌对Google App Engine上托管的API进行身份验证?

时间:2014-08-29 17:44:02

标签: java android google-app-engine authentication oauth

我正在使用GAE为我的Android应用构建后端,并且我想使用从Android应用发送的Google帐户对用户进行身份验证。

在OAuth2之前,您可以使用从_ah/login端点检索到的Cookie对用户进行Web应用程序身份验证,但该方法已弃用,我希望能够使用更新的OAuth2方法。

在我的Android应用程序中,我已经能够使用以下行生成JSON Web令牌:

String jwt =  GoogleAuthUtil.getToken(FamiliarActivity.this, Plus.AccountApi.getAccountName(mGoogleApiClient), "audience:server:client_id:1234567.apps.googleusercontent.com");

或OAuth令牌:

String oauth2 =  GoogleAuthUtil.getToken(FamiliarActivity.this, Plus.AccountApi.getAccountName(mGoogleApiClient), "oauth2:server:client_id:1234567.apps.googleusercontent.com:api_scope:https://www.googleapis.com/auth/plus.login");

要么手动,我可以传递给我的API并对Google进行验证。但我还没有找到一种方法来使用像这样的令牌来触发GAE中的身份验证,就像Cookie一样。文档似乎表明将其作为标题传递:Authorization: Bearer <TOKEN>但这似乎不起作用。

检索并将令牌传递给GAE端点的正确方法是什么,以便对用户进行身份验证?

1 个答案:

答案 0 :(得分:0)

完成此任务的正确和记录方法是:

1)Create带有

的受OAuth保护的端点
https://www.googleapis.com/auth/plus.login

https://www.googleapis.com/auth/userinfo.email

Android客户端应用的范围和授权客户端ID。

2)Generate客户端库和integrate与您的应用。