Ich verwende flask-mwoauth
, um eine einfache Anwendung in Flask mit OAuth-Authentifizierung auf Mediawiki (und insbesondere Wikipedia) zu erstellen.Wie überschreibt man eine Flask Blueprint URL?
flask-mwoauth
ist ein Entwurf, der einige bequeme Methoden bietet mit Mediawiki-Erweiterungen zu interagieren: OAuth und fügt die folgenden URIs:
/login
- führt die OAuth-Handshake und bringt den Benutzer zu/
/login?next=/someurl
wird den Benutzer zu/someurl
- zurückgeben- löscht der Benutzer Zugriffstoken
/logout?next=/someurl
wird der Benutzer zu/someurl
/oauth-callback
zurückkehren - Rückruf von MW das Handshake zu beenden
der Benutzer OAuth-Schlüssel und geheimen gespeichert werden in der Sitzung.
Ich möchte in der Lage sein, benutzerdefinierte Antworten für einige dieser benutzerdefinierten URIs zu erstellen. Nehmen Sie zum Beispiel /logout
, die Definition der Antwort auf sehr einfachen():
@self.bp.route('/logout')
def logout():
session['mwo_token'] = None
session['username'] = None
if 'next' in request.args:
return redirect(request.args['next'])
return "Logged out!"
Ich mag würde in meiner Anwendung der Route /logout
mit einer benutzerdefinierten Antwort definieren (zB eine Vorlage Rendering), aber wenn Ich benutze den Bauplan, dann wird die Route @app.route("/logout")
ignoriert.
Was würde ich gerne wissen, wenn es möglich ist, den Blueprint in dem Sinne zu erweitern, dass ich eine Route /logout
in meiner App definieren kann, rufen Sie die ursprüngliche Methode aus dem Blueprint und dann eine benutzerdefinierte Antwort.