Flask-Login的使用

Flask-Login 用户登录 Flask-Login提供Flask的用户会话管理。它处理登录,注销和记住用户会话的常见任务。 它会: 1.将活动用户的ID存储在会话中,让您轻松登录和注销。 2.让您将视图限制为已登录(或已注销)用户。 3.处理通常令人毛骨悚然的“记住我”功能。 4.帮助保护您的用户会话免遭Cookie小偷窃取。 5.稍后可能与Flask-Principal或其他授权扩展集成。 但是,它不会: 1.对您强加特定... 阅读详情

Flask-Login的使用

Flask-Login 为 Flask 提供了用户会话管理。它处理了日常的登入,登出并且长时间记住用户的会话。

它会:

在会话中存储当前活跃的用户

ID,让你能够自由地登入和登出。

让你限制登入(或者登出)用户可以访问的视图。

处理让人棘手的 “记住我” 功能。

可以与以后可能使用的 Flask-Principal 或其它认证扩展集成。

配置应用

对一个使用 Flask-Login 的应用最重要的一部分就是 LoginManager 类。你应该在你的代码的某处为应用创建一个,像这样:
login_manager = LoginManager()
登录管理(login manager)包含了让你的应用和 Flask-Login 协同工作的代码,比如怎样从一个 ID 加载用户,当用户需要登录的时候跳转到哪里等等。
一旦实际的应用对象创建后,你能够这样配置它来实现登录:
login_manager.init_app(app)

它是如何工作

你必须提供一个 user_loader 回调。这个回调用于从会话中存储的用户 ID 重新加载用户对象。它应该接受一个用户的 unicode ID 作为参数,并且返回相应的用户对象。比如:
@login_manager.user_loader
def load_user(userid):
    return User.get(userid)
如果 ID 无效的话,它应该返回 None (而不是抛出异常)。(在这种情况下,ID 会被手动从会话中移除且处理会继续)

你的用户类

你用来表示用户的类需要实现这些属性和方法:
is_authenticated
当用户通过验证时,也即提供有效证明时返回 True 。(只有通过验证的用户会满足 login_required 的条件。)
is_active
如果这是一个活动用户且通过验证,账户也已激活,未被停用,也不符合任何你 的应用拒绝一个账号的条件,返回 True 。不活动的账号可能不会登入(当然, 是在没被强制的情况下)。
is_anonymous
如果是一个匿名用户,返回 True 。(真实用户应返回 False 。)
get_id()
返回一个能唯一识别用户的,并能用于从 user_loader 回调中加载用户的 unicode 。注意着 必须 是一个 unicode —— 如果 ID 原本是 一个 int 或其它类型,你需要把它转换为 unicode 。
要简便地实现用户类,你可以从 UserMixin 继承,它提供了对所有这些方法的默认 实现。(虽然这不是必须的。)

Login 示例

一旦用户通过验证,你可以使用 login_user 函数让用户登录。例如:
@app.route('/login', methods=['GET', 'POST'])
def login():
    """
    这里我们使用某种类型来表示和验证我们
客户端表单数据。例如,WTForms是一个将会出现的库
为我们处理这个问题,我们使用自定义的LoginForm来验证
    """
    form = LoginForm()
    if form.validate_on_submit():
        """
        登录并验证用户。
        用户应该是“用户”类的一个实例
        
        """
        login_user(user)

        flask.flash('Logged in successfully.')

        next = flask.request.args.get('next')
        """
        next_is_valid应该检查用户是否有效
        访问“下一个”url的权限
        
        """
        if not next_is_valid(next):
            return flask.abort(400)

        return flask.redirect(next or flask.url_for('index'))
    return flask.render_template('login.html', form=form)
就这么简单。你可用使用 current_user 代理来访问登录的用户,在每一个模板中都可以使用 current_user:
{% if current_user.is_authenticated() %}
  Hi {{ current_user.name }}!
{% endif %}
需要用户登入 的视图可以用 login_required 装饰器来装饰:
@app.route("/settings")
@login_required
def settings():
    pass
当用户要登出时:
@app.route("/logout")
@login_required
def logout():
    logout_user()
    return redirect(somewhere)
Flask-Login 分析 Flask-Login 是 Flask 上的一个第三方扩展,提供了用户认证和会话管理的功能。它提供了一些函数和类,可以轻松地实现用户的登录、登出和保持会话等操作。这是一个包含了用户身份验证相关方法的类,方便用户自定义 User 模型类。例如,可以使用 UserMixin 中的 get_id() 方法来获取用户 id,或者使用 is_authenticated 属性来判断用户是否已经通过身份验证。这是一个管理用户登录的类,它提供了一些方法来实现用户认证和会话管理。 阅读详情

相关推荐

基于Flask-Login简单登录和权限控制实践

本次开发实现了基于Flask-Login的登录与权限管理系统,涵盖用户注册、角色分配、权限验证及错误处理,最终确保系统能安全处理用户角色与权限逻辑。

肖永威的专栏 2212

【Flask】一文详解 Flask-Login

Flask-Login 为 Flask 提供用户会话管理。它处理登录、注销和长时间记住用户会话等常见任务。Flask-Login 不绑定到任何特定的数据库系统或权限模型。唯一的要求是您的用户对象实现一些方法,并且您向能够从用户 ID 加载用户的扩展提供回调。

Data · Model · Agent · Repeat 7559

Python Flask学习_使用flask-login实现认证蓝本(一)

蓝本可以认为是一类路由的集合。一个Web App实现多个蓝本的目的是,把不同的路由分开,便于维护。再来复习一下,创建蓝本。1、在app包下创建新package,命名为auth。2、创建蓝本对象实例# app/auth/__init__.py from flask import Blueprint                            #引入Blueprint类 auth = Bl...

bird333的博客 2394

Flask框架之用户登录模块flask_login模块

flask_login模块 flask-login为flask提供了用户会话管理。他处理了日常的登入,登出并且长时间记住用户的会话。 在会话中存储当前活跃的用户ID让你能够自由地登入和登出。 让你限制登入或登出,用户可以访问的试图。 处理让人棘手的记住我功能。 帮助你保护用户会话免遭cookie被盗的牵连。 .可以与以后可能使用的flask-principal或其他认证扩展集成。 一、配置你的应用 对一个使用flask-login的应用最重要的一部分是loginmanager类。

qq_41809511的博客 8763

Flask Web开发入门(二)之Flask-Login使用

上一章我们介绍了使用Flask开发基本的Web应用,并使用session来进行基本的登录授权验证,接下来我们将使用Flask-Login来进行会话管理,来处理我们的“登入、登出”问题 Flask-Login provides user session management for Flask. It handles the common tasks of logging in, loggi

helloworld的专栏 1万+

使用Flask快速构建Web后端项目(下):Python、Flask、Mysql、Migrate、SQLAlchemy、Login、Session、Scheduler、Socket

在上一篇中Flask快速构建项目(上)我们已经完成了项目的构建,包括Migrate、SQLAlchemy的引入,定义了部门(Dept)的模型,并成功创建一个接口。本篇将继续引入Login、Session、Scheduler、Socket等扩展组件。

千层冷面的博客 1665

flask_login的使用

看外国文献的中文翻译 翻译的程度有的让人会疯,翻译最好的状态是异译 直译会显的很生硬 看起来确实难过;所以在看的时候,建议都看外国文献吧,或者自己用谷歌翻译,感觉比一些翻译的博客准多了; 在使用flask_login 之前,至少要了解flask怎么使用,设置配置启动 1,安装flask_login pip install flask_login 2,在flask项目中配置flas...

weixin_30879169的博客 274

使用Flask-Login实现认证蓝本

通过以上步骤,我们可以使用Flask-Login来实现一个简单的认证蓝本,为我们的Flask应用添加用户认证功能。在上面的代码中,我们创建了一个Flask应用并设置了一个密钥,用于加密会话数据。在上面的代码中,我们创建了一个User类,继承自Flask-Login提供的UserMixin类。通过上述代码示例,我们可以实现一个基本的用户认证功能,并保护需要认证的视图。接下来,我们需要定义一些视图函数来处理用户认证相关的操作,如登录、登出和保护需要认证的视图。最后,在应用的入口文件中,我们需要初始化登录视图。

RfqrScheme的博客 153

Flask-Login使用详解

先看一下flask-login模块的整体架构 基础的信息和全局配置这里就不多说,需要用到再斟酌也可以的。 这里也是针对每个模块较为常用的进行解释说明,后期再使用过程中遇到会进行补充。 Login_Manager LoginManager是一个类,有多个方法和属性;此类初始化的对象用于保存用于登录的设置。实例:class:LoginManager * *不绑定到特定应用程序,因此可以在代码的主体...

gymaisyl的博客 2万+

ios生成海报使用dom-to-image中toPng报错isTrusted:true

主要是ios中safari浏览器解析错误,引起的报错,主要引起原因toPng会调用toSvg,toSvg直接将html标签内容通过svg中foreignObject标签直接包裹,然后转base64, 通过data:image/svg+xml;解决办法:二次生成(调用两次),判断ios or 安卓,生成第一次生成,不用参数,例如:scale: 3,在第二次生成再进行清晰度操作,避免多次生成,引起性能消耗。以上种种很多案例,使用canvase进行转换的,标签丢失,直接toPng版本的,兼容性问题。

weixin_44601570的博客 2105

FLUKA软件在Ubuntu的安装指南(亲测有效)

FLUKA其强大的蒙特卡洛模拟能力使得用户能够模拟复杂的辐射相互作用过程

chencheng1127的博客 2883

[python][flask]Flask-Login 使用详解

Flask-Login是Flask的用户认证扩展,提供登录/注销、会话保护等功能。安装后需配置用户模型(继承UserMixin)、加载器函数和视图保护装饰器(@login_required)。支持记住我功能、角色访问控制和自定义未授权处理。系统默认开启基础会话保护,建议生产环境使用HTTPS和强密码哈希。该扩展简化了用户认证流程,适合快速构建安全认证系统。

一名不太专业的程序员 3352

一文搞懂深度学习:最全神经网络介绍

本文是深度学习系列文章的第二篇,我们将深入探讨各种类型的人工神经网络,探索它们独特的特性和应用。

2402_82802238的博客 2799

flask-login的使用

flask-login是flask框架体系中实现用户登入的组件 flask-login 是基于session的,适合有UI交互的 flask-login的安装

yuxuan89814的专栏 2505

从ADS到SystemVue:当简单链路预算不够用时,我的射频系统级仿真方案升级实录

本文详细介绍了从ADS到SystemVue的射频系统级仿真升级路径,重点分析了基础链路预算在多端口元件和复杂场景下的局限性,并提供了SystemVue在非线性系统验证和跨域协同分析中的优势。通过实际案例展示了如何平滑迁移工具链,提升仿真精度和效率,适用于5G、毫米波雷达等现代射频系统设计。

weixin_34233974的博客 340

大模型推理中Prefill与Decode、KV Cache三者说明

Prefill 阶段对输入 Prompt 并行编码,一次性构建KV Cache,属于计算密集型任务。Decode 阶段逐 token 迭代生成,复用KV Cache避免重复计算,属于显存带宽密集型任务。KV Cache是自回归推理的核心基石,用显存换时间,实现两阶段衔接与高效生成。PD 分离通过任务解耦、异构硬件、异步调度、独立批处理,解决传统一体化推理的资源冲突与利用率低下问题,是当前云端大模型推理服务的主流工程优化方向。

a486259的博客 1480

Flask-Login完整使用案例

forms.py。

鸟人的博客 764

【信息系统项目管理师】第1章:信息化发展 考点梳理

本文主要详细梳理高项:信息化、新型基础设施建设、两化融合、数字中国、数字化转型与元宇宙等内容。

数据知道的博客 8565

第5天上篇:在Flask应用中使用用户认证—Flask_Login

原文: http://www.catonlinepy.tech/ 声明: 原创不易,未经许可,不得转载 1. 你将学会什么 今天的课程主要给大家介绍一款非常好用的Flask插件—Flask_Login,该插件主要用来管理用户的登陆状态。通过今天的学习,你将学会如何维护用户的登录、登出状态。教程中的代码都会托管到github上,猫姐一再强调,在学习本课内容时一定要亲自动手实现代码,遇到问题再到g...

猫姐的博客 589

[QMT和ptrade量化交易小白入门]-112、小市值热点概念交易策略,回测5年20倍

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1078

33、密码学中的选择密文攻击与Cramer - Shoup加密方案

本文详细介绍了密码学中选择密文攻击的背景及其对Cramer-Shoup公钥加密方案的影响。该方案在决策Diffie-Hellman假设和抗碰撞哈希函数的基础上,能够有效抵御自适应选择密文攻击,并且其安全性无需依赖随机预言机模型。文章还分析了Cramer-Shoup方案的设计原理、加密与解密过程,以及其在标准假设下的安全性证明方法。此外,通过一系列相关练习,帮助读者进一步理解密码学概念如密文不可区分性、ElGamal加密、Goldwasser-Micali方案等。最后,文章展望了密码学的未来发展趋势,包括量子

vscode6remote的博客 99

Flask # Flask-Login登陆组件使用介绍

pip install flask-login flask-login使用需要有user对象。user对象必须实现下面的几个属性和方法。 属性/方法 说明 is_authenticated 如果用户提供的登陆凭据有效,返回True,否则False is_active 如果允许用户登陆,必须返回True,否则返回False is_anonymous 对普通用户必须返回False,如果是表示匿名登陆的特殊用户对象必须返回True get_id() 返回用户的唯一标识符,unicod

skysys的研究小屋 1118

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Flask_Login使用与源码解读

注:Flask是一个微框架,仅提供包含基本服务的核心(路由、网关接口、模板),其它功能都是通过扩展来实现,它有无数扩展,你可以根据需要自由组合,这一系列文章我们会来介绍一下这些扩展的使用以及解读一下其源码,另外关于分布系统登录方案可以参考 《注:如果用户登录后,会将user存储在当前request_context中,我们就可以直接获取,如果request_context中没有user对象,将调用_load_user()来恢复(服务器重启就会走这个路径,浏览器并不需要重新登录)

程序员青菜学厨记 959

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Flask-Login——进阶使用

官网是最好的资料 入门使用 安装必要的库 编写web框架 app.py文件 from flask import Flask, Blueprint app = Flask(__name__) # url redirect auth = Blueprint('auth', __name__) @auth.route('/login', methods=['GET', 'POST']) def ...

qq_41134008的博客 507

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: Flask的表单处理
下一篇: Flask+MySql实现用户登录注册
Coder_py
博客等级 码龄10年 106粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值