Heute freuen wir uns, eine neue Version unserer Basis-Python-Bibliothek sowie Versionen unserer Framework-spezifischen Bibliotheken für FastAPI, Flask und Django Rest Framework zu veröffentlichen.
Lassen Sie uns auf einige der größeren Änderungen eingehen!
Wenn Sie unsere Python-Bibliotheken schon einmal verwendet haben, lässt die Typangabe zu wünschen übrig. In unserer neuesten Version haben wir jetzt Typhinweise für alle Anfragen sowie Datentypen für alle Antworten.
HINWEIS: Dies führt insbesondere dann zu Problemen, wenn Sie zuvor Antworten entpackt haben (mit dem Operator **). Antworten waren früher Diktate und sind jetzt explizite Datentypen.
Wir haben häufig verwendete Funktionen wie eine Schlüsselsuche implementiert (response["user_id"] funktioniert weiterhin, aber Response.user_id wird jetzt bevorzugt). Normalerweise versuchen wir, bahnbrechende Änderungen zu vermeiden (dies ist unser zweiter in drei Jahren), aber das fühlte sich wie ein ziemlich begrenztes Problem an.
Zur einfacheren Berechtigungsprüfung können Sie jetzt Funktionen direkt im Benutzerobjekt aufrufen, z. B.:
Damit können Sie das User-Objekt weitergeben, anstatt auf das Auth-Objekt zurückgreifen zu müssen, und ermöglichen außerdem ein einfacheres Verspotten/Testen.
Dies ist nicht spezifisch für unsere Python-Bibliothek, aber wir haben viele neue APIs veröffentlicht wie:
Die vollständige Liste finden Sie hier in unseren Referenzdokumenten.
Bei PropelAuth hatten wir das Glück, in der ersten Reihe dabei zu sein, wie viele B2B-SaaS-Unternehmen wachsen. Authentifizierungsanbieter sind in kritischen Momenten in der Geschichte eines Unternehmens am wichtigsten (erster Start, Einbindung Ihres ersten Kunden, Schließung Ihres ersten Unternehmenskunden usw.). Das Wichtigste, was wir tun können, während Sie wachsen, ist, Ihnen aus dem Weg zu gehen.
Deshalb sind wir mit dieser FastAPI-Route wirklich zufrieden:
@app.post("/api/expensive-action") async def do_expensive_action(user: User = Depends(auth.require_user)): org = user.get_active_org() if org == None or \ not org.user_has_permission("can_do_expensive_action"): raise HTTPException(status_code=403, detail="Forbidden") return do_expensive_action_inner(user, org)
Auf den ersten Blick scheint dies eine ziemlich einfache Route zu sein, aber sie enthält ein paar wichtige Teile:
@app.post("/api/expensive-action") async def do_expensive_action(user: User = Depends(auth.require_user)): org = user.get_active_org() if org == None or \ not org.user_has_permission("can_do_expensive_action"): raise HTTPException(status_code=403, detail="Forbidden") return do_expensive_action_inner(user, org)
Und das Beste daran? Derselbe Codeausschnitt oben wird weiterhin funktionieren. Auch wenn die Anforderungen unserer Kunden immer komplizierter werden, wird Ihr Code dies nicht tun.
Wir sind stets bestrebt, unsere Bibliotheken und Dienste basierend auf Ihrem Feedback zu verbessern. Wenn Sie Fragen zu dieser Version oder Vorschläge für zukünftige Verbesserungen haben, zögern Sie bitte nicht, uns zu kontaktieren.
Das obige ist der detaillierte Inhalt vonPropelAuth Python velease. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!