7.1 Tornado 的 auth 模块
作为一个 Web 应用开发者,你可能想让用户直接通过你的应用在 Twitter 上发表更新或读取最新的 Facebook 状态。大多数社交网络和单一登录的 API 为验证你应用中的用户提供了一个标准的流程。Tornado 的 auth 模块为 OpenID、OAuth、OAuth 2.0、Twitter、FriendFeed、Google OpenID、Facebook REST API 和 Facebook Graph API 提供了相应的类。尽管你可以自己实现对于特定外部服务认证过程的处理,不过 Tornado 的 auth 模块为连接任何支持的服务开发应用提供了简单的工作流程。
7.1.1 认证流程
这些认证方法的工作流程虽然有一些轻微的不同,但对于大多数而言,都使用了 authorize_redirect 和 get_authenticated_user 方法。authorize_rediect 方法用来将一个未授权用户重定向到外部服务的验证页面。在验证页面中,用户登录服务,并让你的应用拥有访问他账户的权限。通常情况下,你会在用户带着一个临时访问码返回你的应用时使用 get_authenticated_user 方法。调用 get_authenticated_user 方法会把授权跳转过程提供的临时凭证替换成属于用户的长期凭证。Twitter、Facebook、FriendFeed 和 Google 的具体验证类提供了他们自己的函数来使 API 调用它们的服务。
7.1.2 异步请求
关于 auth 模块需要注意的一件事是它使用了 Tornado 的异步 HTTP 请求。正如我们在第五章所看到的,异步 HTTP 请求允许 Tornado 服务器在一个挂起的请求等待传出请求返回时处理传入的请求。
我们将简单的看下如何使用异步请求,然后在一个例子中使用它们进行深入。每个发起异步调用的处理方法必须在它前面加上 @tornado.web.asynchronous 装饰器。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论