flask 实现登录 登出 检查登录状态 的两种方法的总结

这篇博客总结了使用Flask进行用户登录、登出和检查登录状态的两种方法。第一种方法依赖flask_login库,利用login_user、login_required、logout_user和current_user等方法。第二种方法则手动实现类似功能,包括验证用户输入、保存到session、清除session以及自定义login_required装饰器和当前用户获取。
摘要由CSDN通过智能技术生成

这里我是根据两个项目的实际情况做的总结,方法一(来自项目一)的登录用的是用户名(字符串)和密码,前后端不分离,用form表单传递数据;方法二用的是手机号和密码登录,前后端分离,以json格式传递数据,所以对登录数据的验证是不同的

方法一(利用插件 简单方便):

利用插件 flask_login 的 login_user, login_required, logout_user, current_user方法来实现用户的登入  检查登录  登出  获取当前登录用户。

首先 在view.py文件中做好导入工作:

  form flask_login import login_user, login_required,  logout_user, current_user

1 利用login_user实现登陆:

 1 from flask_login import login_user, login_required, logout_user, current_user
 2 from app.controls.auth.forms import LoginForm
 3 
 4 @auth.route('/login', methods=['GET', 'POST'])
 5 def login():
 6     form = LoginForm() # 账户 密码表单
 7     if form.validate_on_submit():
 8         user = User.query.filter_by(username=form.username.data).first()
 9         if user is not None and user.verify_password(form.password.data):
10             login_user(user, form.remember_me.data)
11             return redirect(request.args.get('next') or url_for('user_mgm.index'))
12         flash('用户名或密码错误')
13         form.username.data = ''
14         form.password.data = ''
15     return render_template('/auth/login.html', form=form)
login

2 利用logout_user实现登出:

@auth.route('/logout')
@login_required
def logout():
    # 直接调用logout_user函数退出,里面实质封装了对session信息的清除
    logout_user()
    return redirect(url_for('auth.login'))
logout

3 直接利用login_required装饰器检查登录状态:

@auth.route(
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值