Движок приложений Google Федеративный (openid) логин localhost
Я пытаюсь использовать этот скрипт для федеративного входа в систему с Google App Engine. Это работает на ядре развернутого приложения, но с localhost выдает эту ошибку:
Traceback (most recent call last):
File "/workspace/python/app_en/google_appengine/google/appengine/ext/webapp/__init__.py", line 515, in __call__
handler.get(*groups)
File "/workspace/python/app_en/bingousie/helloworld.py", line 23, in get
p['login_url'] = users.create_login_url(federated_identity=p_url)
File "/workspace/python/app_en/google_appengine/google/appengine/api/users.py", line 216, in create_login_url
apiproxy_stub_map.MakeSyncCall('user', 'CreateLoginURL', req, resp)
File "/workspace/python/app_en/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 86, in MakeSyncCall
return stubmap.MakeSyncCall(service, call, request, response)
File "/workspace/python/app_en/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 286, in MakeSyncCall
rpc.CheckSuccess()
File "/workspace/python/app_en/google_appengine/google/appengine/api/apiproxy_rpc.py", line 149, in _WaitImpl
self.request, self.response)
File "/workspace/python/app_en/google_appengine/google/appengine/api/apiproxy_stub.py", line 73, in MakeSyncCall
if request.ByteSize() > self.__max_request_size:
File "/workspace/python/app_en/google_appengine/google/appengine/api/user_service_pb.py", line 178, in ByteSize
n += self.lengthString(len(self.destination_url_))
TypeError: object of type 'NoneType' has no len()
Это потому, что серверы openid не позволяют входить на локальный сайт? Если это так, то почему он не работает хотя бы с http://myopenid.com/ (я использую его для моей аутентификации на django openid на локальном сервере).
1 ответ
Решение
В create_login_url
позвоните, вы должны указать dest_url
параметр.
dest_url может быть полным URL-адресом или путем относительно домена вашего приложения.
У меня была такая же проблема здесь.