在python 3中为现有WSGI服务器创建OAuth2.0提供程序

时间:2014-10-09 08:13:36

标签: python oauth

我无法弄清楚如何为现有的wsgi服务器创建OAuth v.2.0提供程序。 我想通过HTTPS在我现有的wsgi-server(使用apache' s mod_wsgi)上部署自定义OAuth 2.0提供程序。 wsgi基础和HTTPS已经实现并且运行正常。 不幸的是,我只能找到关于如何在python 3中实现OAuth 2.0提供程序的oauthlib的this tutorial。 但是这个模块'文档主要是指drango和flask这样的框架,我不需要这样的框架,因此不想用于这个项目。 另外,oauthlib似乎迫使我使用他们自己的网络服务器,如

中所述
# From the previous section on validators
from my_validator import MyRequestValidator

from oauthlib.oauth2 import WebApplicationServer

validator = MyRequestValidator()
server = WebApplicationServer(validator)

我的问题是,我想创建一个没有现有WSGI服务器上提到的框架的OAuth 2.0提供程序,但无法弄清楚我需要在哪里更改内容。

1 个答案:

答案 0 :(得分:1)

WebApplicationServer是"一个具有授权代码授权和承载令牌的一体化终端。" 。 Pythons oauthlib并不依赖于任何特定类型的传输,因为您提供了服务器"使用验证请求所需的参数,服务器使用提供的验证器来执行此操作。作为回报,您将获得需要提供给被请求者的回复。

通常将HTTP路径和方法映射到服务器功能,例如GET / authorize可以映射到server.validate_authorization_request(由AuthorizationEndpoint提供)。如果请求中没有错误,您可以使用返回值来呈现一个表单,用户可以同意向客户端提供授权代码。

大部分工作将用于创建RequestValidator的实现。这就是oauthlib将确定客户端是否存在,哪些范围被认为有效,持久授权代码等等。