Flask基于OAuth的身份验证蓝图。易于扩展和覆盖
flask-social-blueprint的Python项目详细描述
Flask基于OAuth的身份验证蓝图。易于扩展和 重写。
https://github.com/wooyek/flask-social-blueprint
演示
基于example/gaecodebase with secretsettings_prd.py 为正确的OAuth提供程序配置提供。
为什么?
这里有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…'},}
完成!
少了什么?
这只是身份验证蓝图没有模板、模型和 你想定制的东西。
还有什么好做的?
- 更多提供商
- 使烧瓶安全依赖项成为可选项
示例
这个模块的核心没有gui,但是示例有一个很好的登录名 和个人资料页显示它的工作。签出demo。
这个例子有一个工作模型和模板,有很多 像Flask-SLQAlchemy这样的依赖项,可以将其作为线框 用它修改和构建你的应用程序。
一些现有的应用程序,它们可能包含更多的东西。 这是展示这个模块真正需要的。有困难的时候就问 问题。
或者把这个溶液放进你的工作瓶应用程序里。它应该 不要与现有的东西产生任何冲突。你可能需要 为用户模型和socialconnection模型编写适配器(或 类似)但这是适配器的3个函数。全用户模型 需求来自Flask-security。
流浪者的发展环境
你可以随时使用我们的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如下:
- http://dev.example.com:5055/_social/callback/Google
- http://dev.example.com:5055/_social/callback/Facebook
- http://dev.example.com:5055/_social/callback/Twitter
- http://dev.example.com:5055/_social/callback/Github
推特
在此处创建新应用程序:https://apps.twitter.com/app/new
谷歌
- 在此处创建新项目:https://console.developers.google.com/project
- 在api&auth>;凭据创建客户端id
- 更新同意屏幕的详细信息,至少包括产品名称、主页和电子邮件地址
- 启用Google+API
Github
在此处创建新应用程序:https://github.com/settings/applications/new