实现用户注销
除了用户登录之外,我们还需要为用户注销提供功能。在我们的应用程序中,我们将使用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和用户名。


