如何使用 OneAuth 向 Flask 应用添加用户身份验证
用户身份验证是 Web 应用程序中的一项基本功能,因此人们可以创建和访问自己的帐户,但不幸的是,身份验证并不总是很容易设置,可能经常错误地实现登录和注销功能。本教程将介绍如何使用 OneAuth 的统一身份验证服务,对多达 1,000 个活动用户帐户免费使用,它能让我们在 Flask 应用中轻松处理用户数据。
文章目录
准备工作
本教程使用了 Python3.x 版本构建程序,所以请留意各项依赖包的版本。
- Flask
- Flask-OIDC
- OneAuth SDK
- 一个免费的 OneAuth 账户
本教程代码将放置在 Github 仓库,基于MIT协议,可以免费/商业使用。
安装依赖
首先我们使用 venv 创建一个干净的开发环境,并激活该环境
python3 -m venv flaskOneAuth
source ./flaskOneAuth/bin/activate
接下来利用 pip 安装所需的依赖
pip install flask>=2.0.2 flask-oidc>=1.4.0
安装成功后,我们安装了所需的 Flask 和 OneAuth 依赖项,让我们开始构建 Flask 应用
创建一个 Flask 应用
我们创建一个名字为 flaskapp 的项目目录,然后创建一个名为 app.py 的文件,包含下面的代码
# imports for Flask
from flask import Flask, Response
app = Flask(__name__)
@app.route("/protectme")
def protect_me():
return Response("I should be protected!")
@app.route("/")
def landing_page():
return Response("I am open for any visitors")
接下来我们可以使用以下命令运行这个 Flask 应用程序
set FLASK_APP=app.py
flask run
在 Web 浏览器中访问 http://localhost:5000,您应该看到
现在转到 http://localhost:5000/protectme 看看。这个页面应该需要身份验证才能访问,但现在它似乎没有任何保护
但可以确定的是,我们的基础应用已启动并运行,下面让我们为它增加身份验证功能
创建 OneAuth 开发者账户
访问打开注册页面
输入表单信息后提交,会提示输入验证码,以确保你没有输错Email地址。此时需要查收你的Email,找到类似的邮件
然后继续输入你接受到的验证码后,会提示创建成功,再回到你的邮箱,查看用户激活邮件
点击激活,会提示设置管理员密码。设置好之后,用你的Email登录。会看到管理员面板
可以看到浏览器地址栏标记黄色的部分,就是你的租户地址了,不仅仅可以通过这个地址访问到管理面板,而且后续我们会用到这个地址配置协议参数。
连接应用到 OneAuth
我们接下来要在 OneAuth 上创建一个应用。我们选择左侧菜单的【应用】然后在面板右侧点击【创建应用】
我们会看到创建应用的弹出框:
我们在这里认证方式选择 OIDC,应用类型选择 Web 应用,点击下一步:
我们创建一个应用名为 flaskapp 的应用,将 http://localhost:5000/oidc/callback 作为登录重定向的地址。
接下来,我们会看到创建好的应用信息(请留意黄色标记部分):