用于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创建端点视图)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
jsoup有效文件路径抛出java。木卫一。FileNotFoundException   java如何在不删除和添加Mapbox中的层的情况下更改SymbolLayer的Z值?   java计算用户定义年数内四个季度的降雨量   如何在Java中轻松地将格式为“20 0F 01”的字符串更改为十六进制值?   java在JPA或Hibernate中“持久类”和“实体”之间有什么区别?   java Android:AlarmManager“缺少对unregisterReceiver()的调用?”当按下后退按钮时   logcat中的java错误“isDataSchedulerEnabled():false”   java i/p col特性必须是字符串或数字类型,但不能是org。阿帕奇。火花利纳格小姐。向量   java如何从Post请求url和浏览器转储中隐藏密码   多线程javamail中的java问题   java我的用户应该直接连接到数据库吗?如何将用户连接到数据库;   java如何获得Spring数据JPA存储库工厂?   windows java字节数组转换为字符串,但不同的操作系统会产生不同的结果   java代码在eclipse中编译,但不在命令行上编译