Flask基于OAuth的身份验证蓝图。易于扩展和覆盖

flask-social-blueprint的Python项目详细描述


Flask基于OAuth的身份验证蓝图。易于扩展和 重写。

https://github.com/wooyek/flask-social-blueprint

https://travis-ci.org/wooyek/flask-social-blueprint.svghttps://coveralls.io/repos/wooyek/flask-social-blueprint/badge.svg?branch=develop&service=githubhttps://img.shields.io/pypi/v/flask-social-blueprint.svg?maxAge=2592000https://img.shields.io/pypi/dm/flask-social-blueprint.svg?maxAge=2592000

演示

基于example/gaecodebase with secretsettings_prd.py 为正确的OAuth提供程序配置提供。

http://flask-social-blueprint.appspot.com/

为什么?

这里有Flask-Social扩展,但是它们是痛苦地相互连接的,并且 要想改变任何事情,你基本上都必须改变 它。

更不用说它需要在社交登录端点上发出post请求。 我讨厌我需要编写内联表单来创建登录按钮。

怎么好多了?

这个蓝图与Flask-Security很好地配合,而且很容易 不需要分叉就可以重写,不是plain simple OOPmodule based providerfunction search crap

要扩展它,只需在任何地方编写一个provider类,然后设置 它的客户端ID和秘密在提供导入路径的烧瓶设置中 像这样:

SOCIAL_BLUEPRINT={# https://developers.facebook.com/apps/"flask_social_blueprint.providers.Facebook":{# App ID'consumer_key':'197…',# App Secret'consumer_secret':'c956c1…'},# https://apps.twitter.com/app/new"flask_social_blueprint.providers.Twitter":{# Your access token from API Keys tab'consumer_key':'bkp…',# access token secret'consumer_secret':'pHUx…'},# https://console.developers.google.com/project"flask_social_blueprint.providers.Google":{# Client ID'consumer_key':'797….apps.googleusercontent.com',# Client secret'consumer_secret':'bDG…'},# https://github.com/settings/applications/new"flask_social_blueprint.providers.Github":{# Client ID'consumer_key':'6f6…',# Client Secret'consumer_secret':'1a9…'},}

完成!

少了什么?

这只是身份验证蓝图没有模板、模型和 你想定制的东西。

还有什么好做的?

  1. 更多提供商
  2. 使烧瓶安全依赖项成为可选项

示例

这个模块的核心没有gui,但是示例有一个很好的登录名 和个人资料页显示它的工作。签出demo

Flask social blueprint login form exampleFlask social blueprint user profile example

这个例子有一个工作模型和模板,有很多 像Flask-SLQAlchemy这样的依赖项,可以将其作为线框 用它修改和构建你的应用程序。

一些现有的应用程序,它们可能包含更多的东西。 这是展示这个模块真正需要的。有困难的时候就问 问题。

或者把这个溶液放进你的工作瓶应用程序里。它应该 不要与现有的东西产生任何冲突。你可能需要 为用户模型和socialconnection模型编写适配器(或 类似)但这是适配器的3个函数。全用户模型 需求来自Flask-security

  1. 对于SQLAlchemy
  2. 对于Google App Engine
  3. 对于MongoDB

流浪者的发展环境

你可以随时使用我们的vagrant。它应该设置测试所需的一切 发展。这将设置您需要的一切:

vagrant up --provision

代码将保存在/vagrant/目录中。 您将获得3个python虚拟环境设置:

  • GAE–对于GAE示例
  • sqla–对于sqla示例
  • MongoDB–对于MongoDB示例

使用virtualenvwrapper激活其中一个。例如激活MongoDB:

workon mongodb
python /vagrant/example/mongodb/main.py

谷歌应用引擎的例子必须运行一点不同, 它需要gae开发服务器层包装瓶。

workon gae
python ~/google_appengine/dev_appserver.py --host 0.0.0.0 --port 5055 /vagrant/example/gae/

当你开发带有或不带有流浪者的版本时,请记住flask social blueprint/example/gae/lib/ 将在计算机之间共享,这可能会导致问题。

使用不同的提供程序设置OAuth

这个蓝图需要你提供的客户身份证和秘密 想要集成,这里是你设置它们的地方。

在示例中,我们使用http://dev.example.com:5055url来克服限制 在设置集成时设置在本地主机和127.0.0.1上。 http://example.comurl保证有效,并且可以由 演示和文档中的任何人。只需将dev.example.com映射到127.0.0.1 你可以走了。

回调url在末尾使用提供程序的名称。 使用 主urlhttp://dev.example.com:5055和回调url如下:

推特

在此处创建新应用程序:https://apps.twitter.com/app/new

谷歌

  1. 在此处创建新项目:https://console.developers.google.com/project
  2. 在api&auth>;凭据创建客户端id
  3. 更新同意屏幕的详细信息,至少包括产品名称、主页和电子邮件地址
  4. 启用Google+API

Github

在此处创建新应用程序:https://github.com/settings/applications/new

facebook

在此处创建新应用程序:https://developers.facebook.com/apps/

在“设置”>;“高级”>;“安全性”中设置有效的OAuth重定向uri

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

推荐PyPI第三方库


热门话题
用于执行intellij插件的java自定义操作按钮   regexjava模式。带重叠分隔符的split()   java如何在使用ExpectedConditions时避免StaleElementReferenceException。属性是什么?   java在Hibernate中获得唯一的结果   位置更改时不更新java XML数据   java Web服务对另一Web服务的依赖关系   向数据库发布数据时出现java错误204   java如何永久删除listview项?   使用pdfbox为同一PDF创建java多个外部签名   java如何将属性(例如枚举)绑定到不同类型的组件属性(例如每个枚举的映像)?   java对活动生命周期的长期引用   java将一个int和string数组合并到第三个数组中   java停止线程和在哪里使用锁   java ADK与JDK与SDK的区别?   对于上面提到的程序,我得到一个测试用例的运行时错误。所有剩余的测试用例都通过了。有什么建议吗   java Spring启动项目创建bean时出错   java读取同一文件行上的字符串和整数