Flask重定向不会更改url,但会渲染模板

时间:2019-05-29 11:51:55

标签: python-3.x flask flask-login

我有一个flask应用程序,该应用程序使用flask_login登录。此应用程序为登录用户提供了一些受保护的路由,如果他们未登录,则将在登录后将其重定向到登录路由,并将它们重定向到在登录前尝试获取的路由。 一切正常,除了将用户重定向到下一条路由。

我以为这是烧瓶重定向问题,但我检查了浏览器网络(Chrome),发现烧瓶正在重定向页面,并且在“预览”选项卡中可以看到我的模板,但工具栏中的实际视图和网址没有得到改变。

@public.route('/auth/login', methods=('GET', 'POST'))
def login_ajax():
if request.method == "POST":
    data = request.get_json(silent=True)
    if data.get('email') == '' or data.get('password') == '' or                     
len(data.get('email')) > 30 or len(
            data.get('password')) > 30:
        error = {'errorStatus': 1, 'message': 'اطلاعات وارد شده صحیح 
نیست'}
        return jsonify(error)
    getUser = Users.objects(email=data.get('email')).first()
    if getUser:
        dbPassword = getUser['password']
        checkPassword = bcrypt.check_password_hash(dbPassword, 
data.get('password'))
        if checkPassword:
            login_user(getUser)
            if 'next' in session:
                next = session['next']
                if is_safe_url(next):
                    return redirect(next)
            return 'login'
        error = {'errorStatus': 1, 'message': 'رمز عبور صحیح نیست'}
        return jsonify(error)
    error = {'errorStatus': 1, 'message': 'کاربری با این ایمیل یافت 
نشد'}
    return jsonify(error)
return abort(404)
@public.route('/login')
def login():
return render_template('public/login.html')


def is_safe_url(target):
 ref_url = urlparse(request.host_url)
 test_url = urlparse(urljoin(request.host_url, target))
 return test_url.scheme in ('http', 'https') and \
       ref_url.netloc == test_url.netloc

,如果有帮助,我可以在前端使用vuejs。
在这里,我将附上屏幕截图,以便您理解我的意思:

enter image description here

0 个答案:

没有答案