我正在尝试用googleappengine运行我自己的身份验证,并使用来自this question:的代码
我在endpoints服务器类中编写了如下方法:
@classmethod
def get_user_from_headers(cls):
try:
user_id = cls.request_state.headers['user-id']
api_token = cls.request_state.headers['api-token']
user = ndb.Key(User, int(user_id)).get()
if user.apiToken != api_token:
raise endpoints.UnauthorizedException('Api Token error')
return user
except:
raise endpoints.UnauthorizedException('no user found')
其他地方:
@endpoints.method(containers.AddMemberToEventContainer, messages.EventsMessage, path='events/{event_id}',
http_method='POST', name='add.member.to.event')
def add_member_to_event(self, req):
user = self.get_user_from_headers()
user类只是扩展了ndb.Model,即user(ndb.Model)
但是当我得到返回的用户时,python认为有一个错误,即user=self.get\u user\u from\u headers()行不能调用该用户
在get headers方法中,我在返回用户之前尝试了日志记录,它会像预期的那样出现在日志中。如何将用户从这个方法传回endpoints方法
编辑: 实际错误如下:
TypeError: 'User' object is not callable
我不知道这样做是否正确,但我创建了一个可调用的模型类并扩展了它:
现在起作用了
相关问题 更多 >
编程相关推荐