显示"Please log in to access the page"的烧瓶消息



我正在做一个flash消息,这样当用户注册时,它会显示"用户注册成功"的消息,但是当我试图登录时,它会显示"请登录进入页面"的消息。尽管我已经登录了。
如何解决这个问题?

这是登录路由:

@bp.route("user_settings/login", methods=["GET","POST"])
def login():
if current_user.is_authenticated:
return redirect(url_for('main.user_settings'))

form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(username=form.username.data).first()
if user is None or not user.check_password(form.password.data):
return redirect(url_for("auth.login"))
login_user(user, remember=form.remember_me.data)
next_page = request.args.get("next")
if not next_page or url_parse(next_page).netloc != '':
next_page = url_for("main.user_settings")
return redirect(next_page)
return render_template("auth/login.html", title='Log In', form=form)

这是寄存器路由:

@bp.route("user_settings/register", methods=['GET', 'POST'])
@login_required
def register():
form = RegistrationForm()
if form.validate_on_submit():
user = User(username=form.username.data, password_string=form.password.data, access_level=form.access_level.data)
user.set_password(form.password.data)
db.session.add(user)
db.session.commit()
flash("User Successfully Registered!", "success")
return redirect(url_for('main.admin_mid', mode="admin")) 
return render_template("auth/register.html", title="Register User", form = form)

HTML模板
{% with messages = get_flashed_messages() %} {% if messages %} {% for
message in messages %}
<div class="alert alert-success alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
</div>
{% endfor %} {% endif %} {% endwith %}

删除注册路由中的@login_required

应该是这样的。

注册路线:

@bp.route("user_settings/register", methods=['GET', 'POST'])
def register():
form = RegistrationForm()
if form.validate_on_submit():
user = User(username=form.username.data, password_string=form.password.data, access_level=form.access_level.data)
user.set_password(form.password.data)
db.session.add(user)
db.session.commit()
flash("User Successfully Registered!", "success")
return redirect(url_for('main.admin_mid', mode="admin")) 
return render_template("auth/register.html", title="Register User", form = form)

@login_required阻止用户进入注册页面,从而在用户未登录时创建帐户。

相关内容

最新更新