url重定向在flask-login中

时间:2016-07-14 15:18:59

标签: flask flask-login

我正在尝试在成功登录时重定向页面但我仍然遇到同样的问题。

我的登录代码:

@app.route('/login/', methods = ['GET', 'POST'])
def login():
    if request.method == 'POST':
        #data = request.get_json()
        #app.logger.debug(data)
        auth = g.couch.get('_design/authentication')
        authView = ViewDefinition('_design/authentication','authentication',auth['views']['authentication']['map'])
        for row in authView():
            if request.form['username'] == row.value['username'] and request.form['password'] == row.value['password']:
                authUser = userModel.User(row.value)
                app.logger.debug(row.value)
                authUser.authenticated = True;
                flask_login.login_user(authUser,remember = True)
                next = request.args.get('next')
                return redirect(next or url_for('/protected/')) 
    return render_template('sampleLoginPage.html')

@app.route('/protected/', methods = ['GET'])
@flask_login.login_required
def protected():
    app.logger.debug("Successful Login")
    app.logger.debug(flask_login.current_user.userID)
    return Response(json.dumps({'message' : '\'You\'re logged in so you can see this page'+flask_login.current_user.username}), mimetype = 'application/json')

html模板选择用户名和密码。我有一个couchdb视图,用于验证用户身份。

当我输入登录凭据时,网址会重定向到http://192.168.1.109:5000/login/?next=%2Fprotected%2F

我没有完全理解文档。有人能够更好地解释这个概念吗?我为什么要这个?

当我尝试将它连接到我的angularjs前端时,也会出现这种情况。

此致 苏尼

1 个答案:

答案 0 :(得分:-1)

我也有这个问题。当我从声明中删除@login_required时,重定向按预期工作。