Google app engine 如何在Google云端点中检查服务到服务的身份验证?

Google app engine 如何在Google云端点中检查服务到服务的身份验证?,google-app-engine,oauth-2.0,google-cloud-endpoints,microservices,google-oauth,Google App Engine,Oauth 2.0,Google Cloud Endpoints,Microservices,Google Oauth,我正在尝试使用Python&standard environment将一个单一的Google应用程序引擎应用程序拆分为一个应用程序中的多个服务。默认服务正在调用另一个服务中使用端点框架实现的API 除了我不知道如何正确地检查默认服务的身份验证以及如何使其在本地开发服务器和生产环境中都能工作之外,所有的工作都很好 要调用该服务,我正在使用GoogleAPI python客户端和默认应用程序凭据 from googleapiclient.discovery import build from oau

我正在尝试使用Python&standard environment将一个单一的Google应用程序引擎应用程序拆分为一个应用程序中的多个服务。默认服务正在调用另一个服务中使用端点框架实现的API

除了我不知道如何正确地检查默认服务的身份验证以及如何使其在本地开发服务器和生产环境中都能工作之外,所有的工作都很好

要调用该服务,我正在使用GoogleAPI python客户端和默认应用程序凭据

from googleapiclient.discovery import build
from oauth2client.client import GoogleCredentials
service = build(
    name, version,
    credentials=GoogleCredentials.get_application_default(),
    discoveryServiceUrl=discovery_url)
service.client_token().execute()
我的服务API代码如下所示

@endpoints.api(
    name='test',
    version='v1',
)
class TestApi(remote.Service):

    @endpoints.method(
        message_types.VoidMessage,
        TestResponse,
        path='test',
        http_method='GET',
        name='test')
    def get_test(self, request):
        # user = endpoints.get_current_user()
        # if not user:
        #     raise endpoints.UnauthorizedException
        return TestResponse(test='test')

在production endpoints.get_中,当前用户似乎返回了正确的应用程序用户,但我不知道如何正确验证它是否是同一个应用程序。在本地开发环境endpoints.get_current_用户返回None。

您做错了。您正在定义用户,但没有使用它

以下示例向已使用个性化消息和注销链接登录应用程序的用户致意。如果用户未登录,该应用程序将提供指向谷歌帐户登录页面的链接

如果您使用from google.appengine.api导入用户模块:

创建用户时,您仍然需要检查它是否为空。另外,用户存储不同的值。所以你只需要给他们打个电话并定义他们

如果有需要用户登录才能访问的页面,可以在文件中强制执行此操作

默认情况下,您的应用程序将使用Google帐户进行身份验证。要选择另一个选项,例如Google应用程序域,请在Google云平台控制台中转到您的项目页面,然后单击编辑。在Google身份验证下拉菜单中,选择所需的身份验证类型,然后单击保存


但是,您也可以使用该框架。

您做得不对。您正在定义用户,但没有使用它

以下示例向已使用个性化消息和注销链接登录应用程序的用户致意。如果用户未登录,该应用程序将提供指向谷歌帐户登录页面的链接

如果您使用from google.appengine.api导入用户模块:

创建用户时,您仍然需要检查它是否为空。另外,用户存储不同的值。所以你只需要给他们打个电话并定义他们

如果有需要用户登录才能访问的页面,可以在文件中强制执行此操作

默认情况下,您的应用程序将使用Google帐户进行身份验证。要选择另一个选项,例如Google应用程序域,请在Google云平台控制台中转到您的项目页面,然后单击编辑。在Google身份验证下拉菜单中,选择所需的身份验证类型,然后单击保存


不过,您也可以使用该框架。

我正在使用Google Cloud Endpoints,希望使用它提供的机制检查身份验证。@Fedor那么您应该在问题中描述一下,因为您没有提到它,这应该是问题的解决方案,但感谢您审阅我的答案:感谢itI我正在使用Google Cloud Endpoints,并希望使用它提供的机制检查身份验证。@Fedor那么您应该在问题中描述一下,因为您没有提到它,这应该是问题的解决方案,但感谢您审阅我的答案:感谢您解决了问题吗我很好奇你是否did@KingReload是的,事实证明这是一件相当简单的事情。我必须生成swagger文件并部署它。今天晚些时候我会尝试发布详细的答案。很高兴你能够自己解决问题^^^并通知我有关帖子:我很好奇你解决问题了吗?:我很好奇你是否did@KingReload是的,事实证明这是一件相当简单的事情。我必须生成swagger文件并部署它。今天晚些时候我会尝试发布详细的答案。很高兴你能自己解决它^^^并通知我关于这篇文章:我很好奇
def get(self):
    user = users.get_current_user()
    if user:
        nickname = user.nickname()
        logout_url = users.create_logout_url('/')
        greeting = 'Welcome, {}! (<a href="{}">sign out</a>)'.format(nickname, logout_url)
    else:
        login_url = users.create_login_url('/')
        greeting = '<a href="{}">Sign in</a>'.format(login_url)

    self.response.write('<html><body>{}</body></html>'.format(greeting))