2016-05-22 6 views
0

hier ist mein Controller-CodeFlask Form nicht richtig mit Kolben-wtf Validierung

@auth.route('/login/', methods=['GET', 'POST']) 
def signin(): 
    form = LoginForm(request.form) 
    # return form.email.data 
    if form.validate_on_submit(): 
     return form.email.data 
     user = User.query.filter_by(email=form.email.data).first() 
     if user and check_password_hash(user.password, form.password.data): 
      session['user_id'] = user.id 
      flash('Welcome %s' % user.name) 
      return redirect(url_for('auth.home')) 
     else: 
      return "invalid username and password" 
    return "Signin form" 

Code für Form

class LoginForm(Form): 
    email = TextField('Email Address', [ 
       Required(message='Forgot your email address?')]) 
    password = PasswordField('Password', [ 
       Required(message='Must provide a password. ;-)')]) 

ich curl Anfrage folgende Verwendung bin Überprüfung

curl -i localhost:9000/auth/login/ --data "[email protected]&password=b" -X POST 

die Form erhält die Daten, schlägt aber bei validate_on_submit() fehl. Was ist der Grund für das gleiche? Auch wenn es wegen csrf tokens ist, bitte sagen Sie mir, wie man es deaktiviert, wie ich gerade mit dem gleichen anfange.

Ich denke, es ist wichtig, dass ich deaktiviert CSRF in Config

CSRF_ENABLED  = False 

und dann geladen config app.config.from_object ('config')

verwenden, aber es scheint immer noch nicht zu arbeite. Eine weitere erwähnenswerte Sache ist, dass dies für eine Pause api ist

+0

Welche Validierungsfehler erhalten Sie? – dirn

Antwort

0

Nur das Problem gelöst. WTF-Form csrf wird nicht von CSRF_ENABLED deaktiviert. Um es global zu deaktivieren, sollte folgendes für die Konfiguration hinzugefügt werden

WTF_CSRF_ENABLED = False

Verwandte Themen