如何使用Github的Flask社会化登录

271 阅读3分钟

编码员们好!

本文介绍了一个在Flask之上实现Github社会化登录的开源样本,Flask是一个用Python编写的流行网络框架。该项目源代码可以从Github(MIT许可)下载和使用,也可以配置为与其他知名的OAuth2提供商(如谷歌、Twitter或Facebook)一起使用。

谢谢你的阅读!- 内容由App Generator提供。

Flask社会化登录- 源代码 (Github)

该代码使用Flask-Dance ,将认证流与Github的OAuth接口连接起来。为了使应用程序更加吸引人,还提供了几个用Bootstrap 5设计的简单页面。

image

Flask-Dance 库提供的认证流程只需要几行代码就可以通过Github实现社会认证(而且不仅仅是)。

我们需要做的第一件事是访问Github并创建一个新的OAuth应用程序,该应用程序将提供OAUTH_CLIENT_IDFlask-dance 库所要求的OAUTH_SECRET_KEY

在Github上创建OAuth APP

为了做到这一点,我们需要从左边的菜单中访问Github ->Settings (右上角) ->Developer Settings

Flask Social Login - Create OAuth App on Github

从左边的菜单中访问OAuth Apps 项目,然后点击创建一个新的APP

Flask Social Login - OAuth APPS Menu

一旦新的页面被加载,我们就可以创建一个样本APP。最重要的设置列在下面。

  • 客户端ID- (只读)由Github生成 - 将保存在.env 文件中
  • 客户秘密- 我们需要生成一个并在.env 文件中使用它
  • 应用程序名称 - 对公共服务很重要
  • 主页URL:https://localhost:5000
  • 授权回调URL:https://localhost:5000/login/github/authorized

请注意,所有的URL都使用HTTPS 模式,这是我们的项目中需要注意的。一旦项目被保存,我们就可以回到我们的项目,保存Github提供的信息并启动它。

Flask社交登录 - 编译项目

如前所述,源代码发布在Github上,我们只需在终端输入几行就可以启动和测试这个简单的项目。请注意,该项目需要在工作站中已经安装了一个最小的编程工具包

  • Python3- 一种现代脚本语言,用于许多类型的项目
  • GIT- 一个用于从Github下载源代码的命令行工具
  • 一个现代代码编辑器--VSCodeAtom

一旦所有的工具都安装完毕,并且可以在终端访问,我们就可以进一步进行,并按照README 文件提供的指令编译项目。

第1步- 克隆源(公共资源库)

$ # Clone the sources
$ git clone https://github.com/app-generator/flask-social-login.git
$ cd flask-social-login

2步- 创建一个虚拟环境

$ # Virtualenv modules installation (Unix based systems)
$ virtualenv env
$ source env/bin/activate
$
$ # Virtualenv modules installation (Windows based systems)
$ # virtualenv env
$ # .\env\Scripts\activate

3步 - 安装依赖项

$ # Install requirements
$ pip3 install -r requirements.txt

第4步- 设置环境

$ # Set the FLASK_APP environment variable
$ (Unix/Mac) export FLASK_APP=run.py
$ (Windows) set FLASK_APP=run.py
$ (Powershell) $env:FLASK_APP = ".\run.py"

5步-创建一个OAuth应用程序(在Github上)

  • 登录到Github
  • 访问Settings ->Developer Settings ->OAuth Apps
  • 编辑你的OAuth应用程序
    • App Name
    • App Description
    • (强制)HomePagehttps://localhost:5000
    • (强制性的)Authorization callback URLhttps://localhost:5000/login/github/authorized
    • 生成一个新的secret key

第6步- 将.env.sample 重命名为.env ,并编辑文件

  • GITHUB_OAUTH_CLIENT_ID - Github提供的值(步骤#5)。
  • GITHUB_OAUTH_CLIENT_SECRET - Github提供的值(步骤#5)。

第7步 - (可选)启用DEBUG环境(本地开发)

$ # Set up the DEBUG environment
$ (Unix/Mac) export FLASK_ENV=development
$ (Windows) set FLASK_ENV=development
$ (Powershell) $env:FLASK_ENV = "development"

8步- 启动项目(HTTPS)

$ flask run --cert=adhoc
$
$ # Access the app in browser: HTTPS://127.0.0.1:5000/

在这一点上,应用程序应该在浏览器中启动和运行,准备通过Github成功验证用户。

Flask Social Login - HOMEpage

谢谢你的阅读!如需更多资源,请访问: