gpt4 book ai didi

python - 在 Tornado python中设置openId

转载 作者:太空宇宙 更新时间:2023-11-03 13:52:11 25 4
gpt4 key购买 nike

大家好...我一直在阅读 tornado 文档并遇到了 open id mixin 所以我心想“我这边没有可怕的密码系统”然后我研究了如何实现它,我来的唯一例子对面是这个

class GoogleHandler(tornado.web.RequestHandler, tornado.auth.GoogleMixin):
@tornado.web.asynchronous
def get(self):
if self.get_argument("openid.mode", None):
self.get_authenticated_user(self.async_callback(self._on_auth))
return
self.authenticate_redirect()

def _on_auth(self, user):
if not user:
raise tornado.web.HTTPError(500, "Google auth failed")

没有显示更大的图景,例如路线、应用程序设置等 # 使用例如 set_secure_cookie() 保存用户

所以我的问题是。这如何适应 Tornado 网站的大局。

最佳答案

此处理程序不依赖于应用程序的其他部分,您只需在 url conf 中将其设置为类似“/login/google”的内容,然后在您网站的某处放置指向此 url 的链接。

用户点击它并被重定向到谷歌授权页面(如果它已退出谷歌)或页面要求授予访问他/她的基本信息的权限。如果用户接受 - 浏览器被重定向回这个 url 处理程序并且控制权进入 _on_auth 方法,其中用户对象(如果存在)包含一个包含用户电子邮件、姓名、位置设置和一堆其他的字典东西(只需将此变量转储到日志中即可查看所有内容)。

此时你可以用这些数据做任何你想做的事,但一般来说它看起来像这样:

  1. 检查数据库中是否有使用此电子邮件的用户
  2. 如果您有:您检索它的 ID 并将其设置为他的(安全)cookie
  3. 如果不存在:您使用提供的数据创建它,保存到数据库,可选择使用自动生成的密码发送电子邮件并设置 cookie
  4. 重定向到您应用程序中的其他地方:他的个人资料、主页或您需要的任何地方
  5. 现在您的用户在所有其他处理程序中都有可用的 cookie,通常您会在覆盖 RequestHandler.get_current_user 方法时使用它

关于python - 在 Tornado python中设置openId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5452039/

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