使用oauth2可避免维护用户账号密码风险,适合flask后台系统接入google、github或自建提供商。推荐使用authlib扩展,配置客户端后实现登录流程:1. 用户点击登录按钮跳转授权页;2. 用户授权后回调指定url;3. 应用通过code获取access token;4. 使用token请求用户信息完成登录。需将用户信息映射至本地数据库并结合权限控制,如添加@admin_required装饰器限制访问。注意事项包括:设置https回调地址、处理跨域与csrf保护、安全存储token及合理处理异常。

OAuth2 是现代 Web 应用中常用的认证机制,特别适合用于后台管理系统,可以避免自己维护用户账号密码的风险。如果你正在使用 Flask 搭建后台系统,并希望接入如 Google、GitHub 或自建的 OAuth2 提供商,下面这些步骤和建议能帮你顺利实现。
Flask 本身没有内置 OAuth2 支持,但社区提供了几个好用的扩展来处理这个需求。最推荐的是 Flask-OAuthlib 和 Authlib。其中:
安装方式(以 Authlib 为例):
pip install authlib
引入后可以在 Flask 应用中创建客户端配置,比如连接 GitHub 的 OAuth2 接口:
from authlib.integrations.flask_client import OAuth
oauth = OAuth(app)
github = oauth.register(
name='github',
client_id='your-client-id',
client_secret='your-client-secret',
access_token_url='https://github.com/login/oauth/access_token',
authorize_url='https://github.com/login/oauth/authorize',
api_base_url='https://api.github.com/',
)OAuth2 的登录流程通常包括以下几个步骤:
如果您是新用户,请直接将本程序的所有文件上传在任一文件夹下,Rewrite 目录下放置了伪静态规则和筛选器,可将规则添加进IIS,即可正常使用,不用进行任何设置;(可修改图片等)默认的管理员用户名、密码和验证码都是:yeesen系统默认关闭,请上传后登陆后台点击“核心管理”里操作如下:进入“配置管理”中的&ld
0
在 Flask 中可以通过如下视图函数实现:
@app.route('/login/github')
def login_github():
redirect_uri = url_for('authorize', _external=True)
return github.authorize_redirect(redirect_uri)
@app.route('/authorize')
def authorize():
token = github.authorize_access_token()
resp = github.get('user')
user_info = resp.json()
# 这里可以根据 user_info['id'] 或 email 做用户查找或创建
# 并设置 session 或 JWT 登录状态
session['user'] = user_info
return redirect('/admin')需要注意:
/authorize 必须与你在 OAuth 提供方配置的地址一致;完成 OAuth2 登录后,你还需要将用户信息与后台权限管理结合起来。常见的做法是:
user_info['id'])映射到本地数据库中的用户表;@login_required 或类似装饰器限制访问;例如,你可以这样封装一个简单的权限检查:
def admin_required(f):
@wraps(f)
def decorated_function(*args, **kwargs):
user = session.get('user')
if not user or not is_admin_user(user['id']):
abort(403)
return f(*args, **kwargs)
return decorated_function
@app.route('/admin')
@admin_required
def admin_dashboard():
return "欢迎进入管理后台"基本上就这些。整个过程不复杂,但有很多细节容易忽略,尤其是权限控制和用户绑定部分。只要一步步按流程来,就能顺利为 Flask 后台系统加上 OAuth2 支持。
以上就是如何为 Flask 后台管理系统添加 OAuth2 认证支持的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号