谷歌通过HTTP通过Web认证端点调用

时间:2016-11-01 08:43:00

标签: api oauth google-cloud-platform google-cloud-endpoints

我在谷歌云上创建了我的端点后端, 并且我试图使其成为经过身份验证的API,

以下是我遵循的步骤: 1)在云控制台上,我生成了一个Web应用程序oauth客户端ID。

2)我将我的客户端ID添加到后端源代码,我按照这个例子: https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/appengine/standard/endpoints/backend/main.py

在以下变量中添加了我的客户端ID(在我创建新的oauth客户端ID凭据时生成):

WEB_CLIENT_ID = 'replace this with your web client application ID'
ANDROID_AUDIENCE = WEB_CLIENT_ID
ALLOWED_CLIENT_IDS = [
               WEB_CLIENT_ID, ANDROID_CLIENT_ID, IOS_CLIENT_ID,
               endpoints.API_EXPLORER_CLIENT_ID]

然后我在@ endpoints.api装饰器中添加了这个变量:

@endpoints.api(
allowed_client_ids=ALLOWED_CLIENT_IDS,

我的问题: 1)我的后端API代码准备好了吗?或者我错过了其他什么?

2)我可以为Android设备生成Web客户端ID,并使它们通过HTTP请求对API进行身份验证,而不是使用Android客户端ID凭据并生成客户端库吗?

3)我尝试发送HTTP请求并在标头中添加了基本授权,我在身份验证中添加了客户端ID和客户端密钥,但它给了我401(无效令牌),

如果这是不正确的请求,任何人都可以举例说明我的请求应该是什么样的吗?

1 个答案:

答案 0 :(得分:0)

  1. 取决于您的意思。
  2. 您不需要使用客户端库,但要使auth工作,您必须使用客户端ID生成身份验证令牌以注入您对API所做的任何HTTP请求。客户端库为您完成此操作,但自己动手并不难。
  3. 客户端ID和密码不在标题中。您使用客户端ID生成身份验证令牌,该令牌位于标头中。见this doc