如何在 Android 模拟器中使用 GiTkit 调试 Cloudendpoints

How to debug Cloudendpoints with GiTkit in the Android Emulator

我在 Android Studio 中设置了一些 Cloud Endpoints 并实现了一个 Authenticator (com.google.api.server.spi.config.Authenticator),每次调用云端点时都会调用它。

现在我想使用我的身份验证器通过 GiTkit(Google Identity Toolkit)检查来自 Android 的登录。当我调试我的端点时,我可以使用像 http://localhost:8080/_ah/api/userApi/v1/login/ 这样的本地 URL 检查它们。 在 Android 模拟器中,本地环回地址是 10.0.2.2,因此 URL 将是 http://10.0.2.2:8080/_ah/api/userApi/v1/login/(在 Android 浏览器中工作)。

但我无法在 Google 开发人员控制台(Web 应用程序的客户端 ID)中将授权重定向 URI 形式的本地主机更改为此 URL。 (无效重定向:http://10.0.2.2:8080/_ah/api/userApi/v1/login/ 必须以 public 顶级域(例如 .com 或 .org)结尾)

如何在 Android 模拟器(或 Phone)中将我的 Cloud Endpoint 与 GiTkit 一起调试?

我从 Derek Salama 那里得到了一个答案,在 google 组中是不可能的:https://groups.google.com/forum/#!topic/google-identity-toolkit/RNyW8xN7q7E

Hi Martin,

You're correct that the redirect URI for the Client ID cannot be an IP address, and thus http://10.0.2.2:8080/ doesn't work while http://localhost:8080 does.

I don't know of any magic that would let you access the localhost from an Android emulator without using the IP address. When developing with Identity Toolkit and Cloud Endpoints, I first test the Authenticator implementation with the Endpoints API explorer (after using curl to get a valid ID token). Once I'm confident the authenticator is working, I deploy to appengine and test the Android app against a live instance.

我现在已经根据https://developers.google.com/identity/toolkit/web/setup-frontend设置了一个localhost示例站点,方便调试。