用于talons wsgi中间件库的oauth 1.0扩展
talons.auth.oauth的Python项目详细描述
[![构建状态](https://travis-ci.org/swistakm/talons-oauth.svg?branch=master)(https://travis ci.org/swistakm/talons oauth)
您可以使用pip安装它:
```
pip install talons oauth
````
配置可能已从某些ini文件中读取的选项…
config=getappconfig()
authenticate_with=[oauth1.authenticator],
**config)
app=falcon.api()
```
``talons.auth.oauth.oauth1.identifier`
oauth身份验证流比“talons.auth`
middleware假设的典型身份验证要复杂一些。在大多数oauth实现中,标识和身份验证之间没有明确的界限。
没有用户凭据*本身*而是代表用户进行身份验证的oauth使用者的凭据。因为这个'oauth1.identifier`
通过整个请求体、方法、头和url参数集来标识“用户”。然后将需要此数据来验证请求签名。
`oauth1.identifier.identifier()`仅当请求看起来像
oauth 1.0时才返回'true'。请求-具有有效的身份验证头、正文参数或查询
字符串(如[rfc 5849]中所指定)(http://tools.ietf.org/html/rfc5849))。
请求中存储的标识是一个“talons.auth.oauth.oauth1.oauth identity”子类的实例“talons.auth.interfaces.identity”。它的所有基本
属性(`login`,`key`,`roles`,`groups`)都设置为“none”或默认
值。这不应破坏其他Talons身份验证器。
\talons.auth.oauth.oauth1.authenticator`
`oauth1.authenticator`不会工作ootb。它使用
[oauthlib](https://github.com/idan/oauthlib)作为oauth提供程序的后端,就像
以及falcon和talons一样,都试图不固执己见。这意味着它不会假设您的存储或数据体系结构的类型。
您必须提供一个
`oauthlib.oauth1.rfc5849.request戋validator.requestvalidator`
子类实例,它告诉库如何验证/保存/验证/检索
令牌、nonce、密钥等。幸运的是,这个过程非常简单好的,在[oauthlib的文档](https://oauthlib.readthedocs.org/en/latest/oauth1/server.html)中有文档记录。
它可以设置为
整个api实例所需领域的列表。不幸的是,falcon hook不知道受请求影响的资源,并且不能为每个资源单独设置域。如果您想对许多资源使用不同的认证领域,我建议您根据它们的领域将api分成多个实例。
配置参数的完整列表:
*`oauth1撸validator`:`oauthlib.oauth1.rfc5849.request撸validator.requestvalidator`
(必需)。定义如何验证/保存/验证/检索OAuth 1.0。令牌,
nonces、密钥等。有关完整文档,请参阅
[oauthlib的请求验证器](https://oauthlib.readthedocs.org/en/latest/oauth1/validator.html)
文档。
*`oauth1_realms`:列表(默认为[])。消费者访问令牌所需领域的列表。
端点
提供用于访问/授权请求令牌和访问令牌的端点
超出了此库的范围。一旦创建了“requestValidator”
子类,就应该很容易使用
[通用OAuthlib端点](https://oauthlib.readthedocs.org/en/latest/oauth1/server.html创建端点视图)。
您可以使用pip安装它:
```
pip install talons oauth
````
配置可能已从某些ini文件中读取的选项…
config=getappconfig()
**config)
app=falcon.api()
```
``talons.auth.oauth.oauth1.identifier`
oauth身份验证流比“talons.auth`
middleware假设的典型身份验证要复杂一些。在大多数oauth实现中,标识和身份验证之间没有明确的界限。
没有用户凭据*本身*而是代表用户进行身份验证的oauth使用者的凭据。因为这个'oauth1.identifier`
通过整个请求体、方法、头和url参数集来标识“用户”。然后将需要此数据来验证请求签名。
`oauth1.identifier.identifier()`仅当请求看起来像
oauth 1.0时才返回'true'。请求-具有有效的身份验证头、正文参数或查询
字符串(如[rfc 5849]中所指定)(http://tools.ietf.org/html/rfc5849))。
请求中存储的标识是一个“talons.auth.oauth.oauth1.oauth identity”子类的实例“talons.auth.interfaces.identity”。它的所有基本
属性(`login`,`key`,`roles`,`groups`)都设置为“none”或默认
值。这不应破坏其他Talons身份验证器。
\talons.auth.oauth.oauth1.authenticator`
`oauth1.authenticator`不会工作ootb。它使用
[oauthlib](https://github.com/idan/oauthlib)作为oauth提供程序的后端,就像
以及falcon和talons一样,都试图不固执己见。这意味着它不会假设您的存储或数据体系结构的类型。
您必须提供一个
`oauthlib.oauth1.rfc5849.request戋validator.requestvalidator`
子类实例,它告诉库如何验证/保存/验证/检索
令牌、nonce、密钥等。幸运的是,这个过程非常简单好的,在[oauthlib的文档](https://oauthlib.readthedocs.org/en/latest/oauth1/server.html)中有文档记录。
它可以设置为
整个api实例所需领域的列表。不幸的是,falcon hook不知道受请求影响的资源,并且不能为每个资源单独设置域。如果您想对许多资源使用不同的认证领域,我建议您根据它们的领域将api分成多个实例。
配置参数的完整列表:
*`oauth1撸validator`:`oauthlib.oauth1.rfc5849.request撸validator.requestvalidator`
(必需)。定义如何验证/保存/验证/检索OAuth 1.0。令牌,
nonces、密钥等。有关完整文档,请参阅
[oauthlib的请求验证器](https://oauthlib.readthedocs.org/en/latest/oauth1/validator.html)
文档。
*`oauth1_realms`:列表(默认为[])。消费者访问令牌所需领域的列表。
端点
提供用于访问/授权请求令牌和访问令牌的端点
超出了此库的范围。一旦创建了“requestValidator”
子类,就应该很容易使用
[通用OAuthlib端点](https://oauthlib.readthedocs.org/en/latest/oauth1/server.html创建端点视图)。