Rumah > pembangunan bahagian belakang > Tutorial Python > PropelAuth Python velease

PropelAuth Python velease

Mary-Kate Olsen
Lepaskan: 2024-12-20 08:34:10
asal
870 orang telah melayarinya

PropelAuth Python velease

Hari ini, kami teruja untuk mengeluarkan versi baharu perpustakaan Python asas kami, serta keluaran perpustakaan khusus rangka kerja kami untuk FastAPI, Flask dan Rangka Kerja Django Rest.

Mari beralih kepada beberapa perubahan yang lebih besar!

Sokongan Menaip Lebih Baik (memecahkan perubahan)

Jika anda pernah menggunakan perpustakaan Python kami sebelum ini, pembayang jenis meninggalkan banyak perkara yang perlu diingini. Dalam keluaran terbaharu kami, kami kini mempunyai petunjuk jenis untuk semua permintaan serta jenis data untuk semua respons.

PropelAuth Python velease

PropelAuth Python velease

NOTA: Ini akan terputus secara khusus jika anda sebelum ini membongkar (menggunakan operator **) pada respons. Respons sebelum ini adalah dict dan kini merupakan jenis data yang jelas.

Kami telah melaksanakan fungsi yang biasa digunakan seperti carian kunci (response["user_id"] akan tetap berfungsi, tetapi response.user_id kini diutamakan). Kami biasanya cuba mengelak daripada melanggar perubahan (ini kali kedua kami dalam 3 tahun), tetapi ini terasa seperti masalah yang agak sempit.

Penambahbaikan kelas pengguna

Untuk semakan kebenaran yang lebih mudah, anda kini boleh memanggil fungsi terus pada objek Pengguna seperti:

  • pengguna.mempunyai_permission_in_org(orgId, 'can_export_reports')
  • user.is_role(orgId, 'Admin')
  • user.get_active_org().mempunyai_permission('api_key::write')

Ini membolehkan anda melepasi objek Pengguna dan bukannya perlu merujuk kembali kepada objek Auth, dan ia juga membolehkan ejekan/ujian yang lebih mudah.

API baharu

Ini tidak khusus untuk perpustakaan Python kami, tetapi kami telah mengeluarkan banyak API baharu seperti:

  • Paksa log keluar semua sesi pengguna
  • Membuat pautan persediaan SAML untuk pelanggan anda (yang membolehkan mereka mengurus SAML sendiri)
  • Mengambil dan membatalkan jemputan yang belum selesai
  • Sokongan untuk legacy_org_id yang boleh membantu anda berhijrah daripada persediaan sedia ada anda

Lihat senarai penuh dalam dokumen rujukan kami di sini.

Contoh - Gating ciri mudah mengikut pelan harga

Di PropelAuth, kami bernasib baik kerana mempunyai tempat duduk barisan hadapan untuk melihat banyak syarikat B2B SaaS berkembang. Pembekal pengesahan adalah paling penting pada saat-saat kritikal dalam sejarah syarikat (pelancaran awal, menerima pelanggan pertama anda, menutup pelanggan perusahaan pertama anda, dsb.). Perkara yang paling penting yang boleh kami lakukan semasa anda berkembang adalah untuk keluar dari jalan.

Itulah sebabnya kami sangat gembira dengan laluan FastAPI ini:

@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)

Salin selepas log masuk
Salin selepas log masuk

Pada pandangan pertama, ini kelihatan seperti laluan yang agak mudah, tetapi ia mempunyai beberapa bahagian penting:

  • Pengguna yang disuntik kebergantungan berfungsi dengan mana-mana jenis pengguna yang disahkan - sama ada kata laluan, SSO, SAML, dll.
  • Dengan pemetaan peranan, kami boleh menjadikannya sebagai Pentadbir organisasi pada pelan Percuma kami bukan melakukan ciri mahal, tetapi Pentadbir organisasi pada pelan Berbayar kami boleh lakukan tindakan yang mahal.
  • Kami boleh menguatkuasakannya secara pemrograman dengan mengendalikan webhook daripada penyedia pembayaran kami dan menetapkan pemetaan peranan mereka, seperti:
@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)

Salin selepas log masuk
Salin selepas log masuk
  • Kami juga boleh memberi mereka akses layan diri kepada ciri lanjutan seperti SAML dan SCIM dengan menjana URL sambungan SAML secara pemrograman, yang akan membimbing pengguna anda melalui penyediaan ciri tersebut - dengan arahan khusus untuk setiap pembekal identiti (Okta, Azure AD , ADFS, dsb.).

Dan bahagian yang terbaik? Coretan kod yang sama di atas akan terus berfungsi. Walaupun keperluan pelanggan kami semakin rumit, kod anda tidak akan.

Soalan? Maklum balas?

Kami sentiasa berusaha untuk menambah baik perpustakaan dan perkhidmatan kami berdasarkan maklum balas anda. Jika anda mempunyai sebarang soalan tentang keluaran ini atau cadangan untuk penambahbaikan pada masa hadapan, sila jangan teragak-agak untuk menghubungi kami.

Atas ialah kandungan terperinci PropelAuth Python velease. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan