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

在Python3中为现有WSGI服务器创建OAuth2.0提供程序,python,oauth,Python,Oauth,我不知道如何创建OAuth v。现有wsgi服务器的2.0提供程序。 我想通过HTTPS在现有wsgi服务器(使用apache的mod_wsgi)上部署一个自定义OAuth 2.0提供程序。wsgi基础和HTTPS已经实现,并且运行良好。 不幸的是,对于oauthlib,我只能找到如何在python 3中实现OAuth 2.0提供程序。 但是这些模块的文档主要是指像drango和flask这样的框架,我不需要它们,因此也不想在这个项目中使用它们。 此外,oauthlib似乎强迫我使用他们自己的W

我不知道如何创建OAuth v。现有wsgi服务器的2.0提供程序。 我想通过HTTPS在现有wsgi服务器(使用apache的mod_wsgi)上部署一个自定义OAuth 2.0提供程序。wsgi基础和HTTPS已经实现,并且运行良好。 不幸的是,对于oauthlib,我只能找到如何在python 3中实现OAuth 2.0提供程序。 但是这些模块的文档主要是指像drango和flask这样的框架,我不需要它们,因此也不想在这个项目中使用它们。 此外,oauthlib似乎强迫我使用他们自己的Web服务器,如中所述

# 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提供程序,而不使用上述框架,但无法确定需要在何处更改内容。

WebApplicationServer是“一个集授权码授予和承载令牌于一体的端点。”。Pythons oauthlib与任何特定类型的传输无关,因为您向“服务器”提供验证请求所需的参数,服务器使用提供的验证器来验证请求。作为回报,您将得到需要向请求者提供的响应

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

大部分工作将花费在创建RequestValidator的实现上。在这里,oauthlib将确定客户机是否存在,哪些作用域被认为是有效的,持久化授权代码等等