跳转到主要内容

功能全面且安全的OAuth提供者基础

项目描述

Flask-OAuthProvider是一个扩展,它使得使用OAuth保护您的视图变得简单

@provider.require_oauth()
def user_feed(self):
    ...

它通过使用领域提供了对访问的细粒度控制

@provider.require_oauth(realm="photos")
def user_photos(self):
    ...

以及OAuth参数,如客户端密钥和令牌

@provider.require_oauth()
def whoami(self):
    return request.oauth.client_key

注意:此扩展不提供OAuth客户端。 对于此,请简单地使用requests,它具有内置的OAuthLib支持的OAuth。如果您想了解更多关于OAuth的信息,请查看hueniverse上的优秀指南或深入了解可读性强的OAuth 1 RFC 5849规范

示例

请查看/examples文件夹中的示例应用程序,以查看一个完整工作、SQLite / SQLAlchemy支持的OAuth提供者的示例。

在运行演示之前,您需要安装一些依赖项(强烈推荐使用virtualenv)。这很快就会被pip的单行替换…

$ virtualenv venv
$ source venv/bin/activate
(venv)$ git clone https://github.com/idan/oauthlib.git
(venv)$ python oauthlib/setup.py install
(venv)$ git clone https://github.com/ib-lundgren/flask-oauthprovider.git
(venv)$ python flask-oauthprovider/setup.py install
(venv)$ pip install flask-openid sqlalchemy

安装后,您可以运行演示应用程序

(venv)$ python flask-oauthprovider/examples/runserver.py

使用方法

Flask-OAuthProvider建立在OAuthLib及其OAuth 1 RFC 5849服务器类之上。您需要实现一些从服务器(OAuthLib)或OAuthProvider(Flask-OAuthProvider)抽象方法。这些方法主要是数据存储或检索方法。对您使用的持久化系统没有假设,因此您可以自由使用任何您认为合适的。

在实现您的提供者类时,您需要仔细阅读OAuthLib服务器文档OAuthProvider源

实现指南即将推出,请随时查看Flask-OAuthProvider和OAuthLib如何融入OAuth工作流程的概述图片。

当你拼凑出一个闪亮的提供者类时,使用OAuth来保护你的API将变得容易

app = Flask(__name__)
provider = YourProvider(app)

@app.route("/my_secrets")
@provider.require(realm="secrets")
def my_secrets(self):
    ...

安装

当OAuthLib 0.2.0在pypi上可用时,Flask-OAuthProvider将很容易使用pip安装

pip install flask-oauthprovider

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分布

flask-oauthprovider-0.1.3.tar.gz (7.3 kB 查看哈希值)

上传时间

支持者