Flask-Login扩展的使用-实现用户注销和登录保护视图函数

2023-05-06 16:16:26 浏览数 (16)

实现用户注销

除了用户登录之外,我们还需要为用户注销提供功能。在我们的应用程序中,我们将使用Flask的视图函数来处理用户注销请求。在login.py模块中,我们可以定义一个名为logout()的视图函数:

代码语言:javascript复制
from flask import redirect, url_for
from flask_login import logout_user

@app.route('/logout')
def logout():
    # 注销用户
    logout_user()
    return redirect(url_for('index'))

在这个例子中,我们定义了一个名为logout()的视图函数。当用户发起注销请求时,该函数将调用Flask-Login的logout_user()函数来清除用户会话中的用户ID,并将用户重定向到主页。

登录保护视图函数

现在我们已经实现了用户登录和注销的功能,下一步是如何保护需要用户登录才能访问的视图函数。在我们的应用程序中,我们将使用Flask-Login提供的@login_required装饰器来实现这个功能。在api.py模块中,我们可以定义一个名为me()的视图函数,该视图函数只允许已登录的用户访问:

代码语言:javascript复制
from flask import jsonify
from flask_login import login_required, current_user

@app.route('/api/me')
@login_required
def me():
    return jsonify({'user_id': current_user.id, 'username': current_user.username})

在这个例子中,我们使用@login_required装饰器将me()视图函数标记为需要用户登录才能访问的。如果用户未登录,则Flask-Login将自动重定向用户到登录页面。如果用户已登录,则可以访问该视图函数,并返回当前用户的ID和用户名。

0 人点赞