Heim > Backend-Entwicklung > Python-Tutorial > PropelAuth Python velease

PropelAuth Python velease

Mary-Kate Olsen
Freigeben: 2024-12-20 08:34:10
Original
896 Leute haben es durchsucht

PropelAuth Python velease

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!

Bessere Tippunterstützung (bahnbrechende Änderung)

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.

PropelAuth Python velease

PropelAuth Python velease

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.

Verbesserungen der Benutzerklasse

Zur einfacheren Berechtigungsprüfung können Sie jetzt Funktionen direkt im Benutzerobjekt aufrufen, z. B.:

  • user.has_permission_in_org(orgId, 'can_export_reports')
  • user.is_role(orgId, 'Admin')
  • user.get_active_org().has_permission('api_key::write')

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.

Neue APIs

Dies ist nicht spezifisch für unsere Python-Bibliothek, aber wir haben viele neue APIs veröffentlicht wie:

  • Abmeldung aller Benutzersitzungen erzwingen
  • Erstellen Sie einen SAML-Setup-Link für Ihren Kunden (mit dem er SAML selbst verwalten kann)
  • Ausstehende Einladungen abrufen und widerrufen
  • Unterstützung für Legacy_org_id, die Ihnen bei der Migration von Ihrem bestehenden Setup helfen kann

Die vollständige Liste finden Sie hier in unseren Referenzdokumenten.

Beispiel – Einfaches Feature-Gating nach Preisplan

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)

Nach dem Login kopieren
Nach dem Login kopieren

Auf den ersten Blick scheint dies eine ziemlich einfache Route zu sein, aber sie enthält ein paar wichtige Teile:

  • Der abhängigkeitsinjizierte Benutzer funktioniert mit jeder Art von authentifiziertem Benutzer – egal, ob es sich um ein Passwort, SSO, SAML usw. handelt.
  • Mit Rollenzuordnungen können wir dafür sorgen, dass ein Administrator einer Organisation in unserem kostenlosen Plan nicht die teure Funktion nutzen kann, ein Administrator einer Organisation in unseren kostenpflichtigen Plänen jedoch kann die teure Aktion durchführen.
  • Wir können dies programmgesteuert durchsetzen, indem wir einen Webhook von unserem Zahlungsanbieter verarbeiten und dessen Rollenzuordnung festlegen, etwa so:
@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)

Nach dem Login kopieren
Nach dem Login kopieren
  • Wir können ihnen sogar Self-Service-Zugriff auf erweiterte Funktionen wie SAML und SCIM gewähren, indem wir programmgesteuert eine SAML-Verbindungs-URL generieren, die Ihren Benutzer durch die Einrichtung dieser Funktionen führt – mit spezifischen Anweisungen für jeden Identitätsanbieter (Okta, Azure AD). , ADFS usw.).

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.

Fragen? Rückmeldung?

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage