我在我的 GAE 应用程序中使用 Alex ( https://github.com/crhym3/simpleauth/ ) 的 SimpleAuth。
当我在 localhost 中使用它时,我使用 fb 和 google id 成功登录。
部署到 PROD 后,我仍然可以使用 google 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。