gpt4 book ai didi

google-app-engine - 获取用户对象的应用引擎端点方法

转载 作者:行者123 更新时间:2023-12-04 05:05:45 25 4
gpt4 key购买 nike

我有一个需要用户对象的端点方法。我会做以下事情吗?这似乎有点奇怪,因为我可以让用户使用 endpoints.get_current_user()

@endpoints.method(FriendListRequest, FriendListResponse,
path='scores', http_method='POST',
name='scores.list')
def friend_list(self, request):
# work would go here

然后 FriendListRequest 将是
class FriendListRequest(messages.Message):
user_object = messages.Field(1, required=True)

我需要 User 的原因对象是因为我必须使用用户电子邮件来查询和找到该用户的 friend 。

最佳答案

为了安全地对用户进行身份验证,Cloud Endpoints 提供了简单的 OAuth 2.0 支持。请求消息可以是 VoidMessage,而不是在请求中传递用户对象(不安全)。并且您可以依赖 Authorization header ,其中包含用户的 OAuth 2.0 token 。

要实际获取当前用户,您将调用 endpoints.get_current_user() ;这将需要添加 allowed_client_ids和/或 audiences@endpoints.method装饰器或@endpoints.api方法。见 docs了解更多信息。

例如,在 API 上:

@endpoints.api(name='myapi', ...,
allowed_client_ids=[MY_CLIENT_ID])
class MyApi(...):

@endpoints.method(message_types.VoidMessage, FriendListResponse,
path='scores', http_method='POST',
name='scores.list')
def friend_list(self, request):
user = endpoints.get_current_user()
# work would go here

或者,在方法上:
    @endpoints.method(message_types.VoidMessage, FriendListResponse,
path='scores', http_method='POST',
name='scores.list',
allowed_client_ids=[MY_CLIENT_ID])
def friend_list(self, request):
user = endpoints.get_current_user()
# work would go here

关于google-app-engine - 获取用户对象的应用引擎端点方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15515618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com