我在我的GAE应用程序中使用了Alex(https://github.com/crhym3/simpleauth/)的SimpleAuth。
当我在localhost中使用它时,我使用fb和google id成功登录。
我部署到PROD后,我仍然可以成功登录谷歌ID,但无法使用FB ID登录。
def _on_signin(self, data, auth_info, provider):
"""Callback whenever a new or existing user is logging in.data is a user info dictionary.auth_info contains access token or oauth token and secret.
"""
auth_id = '%s:%s' % (provider, data['id'])
logging.info('Looking for a user with id %s', auth_id)
user = self.auth.store.user_model.get_by_auth_id(auth_id)
_attrs = self._to_user_model_attrs(data, self.USER_ATTRS[provider])
logging.error(_attrs)
logging.error(user)
if user:
logging.info('Found existing user to log in')
user.populate(**_attrs)
user.put()
logging.error(user.put())
self.auth.set_session(self.auth.store.user_to_dict(user))
对于FB登录,我可以获取用户的值并将其存储在数据存储区中。 当我尝试self.auth.set_session()以某种方式为FB登录设置_auth cookie时,它无法创建_auth cookie。
self.auth.set_session(self.auth.store.user_to_dict(user))
我的身份验证类型是(实验性)联合登录。
我无法弄清楚为什么self.auth.set_session()无法为FB登录创建cookie。