例如说我的一个端点从支持者那里接走了(用户)。 我如何使用Google身份验证从我的Android客户端向后端注入此“用户”?
在这里查看GAE注入类型:
https://cloud.google.com/appengine/docs/java/endpoints/paramreturn_types#injected_types
如果您使用的是Google身份验证,则会将用户自动注入到Endpoints API方法中,然后您可以执行以下操作:检查用户是否存在(例如,在数据存储中),将用户保存到数据存储等。
它的工作方式是在您的Android客户端中,提示用户通过oAuth2.0登录其Google帐户,然后,他们将GoogleAccountCredential对象传递给构建器。
这是取自docs的示例代码:
// Inside your Activity class onCreate method
settings = getSharedPreferences("TicTacToeSample", 0);
credential = GoogleAccountCredential.usingAudience(this,
"server:client_id:1-web-app.apps.googleusercontent.com");
setSelectedAccountName(settings.getString(PREF_ACCOUNT_NAME, null));
Tictactoe.Builder builder = new Tictactoe.Builder(
AndroidHttp.newCompatibleTransport(), new GsonFactory(),
credential);
service = builder.build();
if (credential.getSelectedAccountName() != null) {
// Already signed in, begin app!
} else {
// Not signed in, show login window or request an account.
}
// setSelectedAccountName definition
private void setSelectedAccountName(String accountName) {
SharedPreferences.Editor editor = settings.edit();
editor.putString(PREF_ACCOUNT_NAME, accountName);
editor.commit();
credential.setSelectedAccountName(accountName);
this.accountName = accountName;
}
基本上发生了一些魔术,Cloud Endpoints现在可以将登录的用户注入到您的Endpoints方法中。 您可以检查它是否为null(如果为null,则auth不好,因此抛出未授权的错误),获取该用户的电子邮件,等等。
希望能帮助您入门。