gpt4 book ai didi

Flask 如何在成功登录后重定向到上一页

转载 作者:行者123 更新时间:2023-12-03 23:38:12 25 4
gpt4 key购买 nike

我有一个不使用 Flask 登录的网络应用程序。如果用户访问链接但未登录,我会将用户重定向到登录页面。我在 session 中实现了我的设置“用户名”,并检查当用户尝试直接访问某个链接而不登录时,即在这种情况下用户名将为空。

我试图按照这个 SO solution ,但下一个参数总是无。我已经尝试了两种解决方案,但无法让任何一种解决方案起作用。

username = session.get('username')
if username:
# go to home
else:
next_url = request.url
login_url = '%s?next=%s' % (url_for('login'), next_url)
return redirect(login_url)

第二种解决方案
username = session.get('username')
if username:
# go to home
else:
return redirect(url_for('login', next= request.url))

打印 (request.url) = localhost:5000/visitPage

登录功能
   if 'next' in request.args:
return redirect(next)
else:
return redirect(url_for("user.index"))

在这里,当我打印(下一个)时,它是无
但是登录网址有下一个参数

http://localhost:5000/login?next=http%3A%2F%2Flocalhost%3A5000%2FvisitPage

最佳答案

使用 session 来跟踪上一个 url,
例如:

@app.route('/profile')
def profile():
if user_not_logged_in:
session['url'] = url_for('profile')
return redirect(url_for('login'))
return rendertemplate('profile.html')

@app.route('/login')
def login():
if login == True: #assuming login was successful
if 'url' in session:
return redirect(session['url'])
return redirect(url_for('anyother_url'))

关于Flask 如何在成功登录后重定向到上一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42284397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com