2016-05-13 9 views
1

Ich habe Anwendung mit ready UI und ich möchte hinzufügen/logout/registrieren/wiederherstellen Funktionen mit Flask-Security. Bevor ich mit diesem Standardverhalten gearbeitet habe - wenn der Benutzer auf "Passwort vergessen" geklickt hat, wurde er an einen bestimmten Endpunkt weitergeleitet.Wie wird Flask-Security Passwort vergessen?

Jetzt möchte ich Passwort-Formular auf der gleichen Seite (nur in anderen Bereich, die zeigen, wenn der Benutzer den entsprechenden Link klickt) vergessen haben.

Ich sah ein Problem, dass ich nicht einfach das gleiche Formular mit dem gleichen Endpunkt hinzufügen kann, weil Flask-Security CSRF-Token will. Ich denke, dass ich irgendwie seine Form auf Seite rendern und Stile anpassen kann. Aber ich weiß nicht wie.

Ich möchte nicht ausschalten csrf überprüfen, es sei denn, ich weiß definitiv, dass es keine anderen Möglichkeiten gibt.

Antwort

1

Da Sie das Formular dynamisch generieren, nehme ich an, dass Sie AJAX verwenden, spricht die documentation darüber.

Sie haben die CSRF-Modul mit

from flask_wtf.csrf import CsrfProtect 

CsrfProtect(app) 
ermöglichen

Sie Zugriff auf csrf_token() auf jeder Seite haben, und Sie können es mit bekommen:

<meta name="csrf-token" content="{{ csrf_token() }}"> 

var csrftoken = $('meta[name=csrf-token]').attr('content') 

$.ajaxSetup({ 
    beforeSend: function(xhr, settings) { 
     if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) { 
      xhr.setRequestHeader("X-CSRFToken", csrftoken) 
     } 
    } 
}) 
Verwandte Themen