Pustaka integrasi klien SSO Akun
Project description
Akun Client SDK
akun-client adalah pustaka Python/Django SDK resmi untuk mengintegrasikan aplikasi klien Anda dengan platform Single Sign-On (SSO) Akun. Pustaka ini menyediakan middleware untuk memproses token Bearer JWT secara otomatis, dekorator untuk membatasi akses view Django, serta modul validasi token luring (offline) menggunakan kunci publik RS256.
Fitur
- Validasi Offline RS256: Memverifikasi validitas token JWT dengan cepat tanpa perlu melakukan panggilan API jaringan (network call) ke server SSO.
- Middleware Django: Membaca token Bearer dari header
Authorizationdan secara otomatis mengaitkan informasi pengguna kerequest.akun_user. - Dekorator Django: Proteksi view dengan
@require_akun_authyang otomatis mengalihkan pengguna ke portal login SSO terpusat jika belum masuk.
Instalasi
Instal secara langsung menggunakan pip atau uv dari folder lokal repositori pengembangan Anda:
# Menggunakan pip (editable mode)
pip install -e ./packages/akun-client
# Menggunakan uv (development mode)
uv pip install -e ./packages/akun-client
Konfigurasi Django
Tambahkan konfigurasi berikut pada berkas settings.py di aplikasi klien Anda:
-
Daftarkan Middleware: Tambahkan
akun_client.AkunAuthMiddlewareke dalam daftarMIDDLEWARE:MIDDLEWARE = [ ... 'django.contrib.auth.middleware.AuthenticationMiddleware', 'akun_client.AkunAuthMiddleware', # Letakkan setelah AuthenticationMiddleware ... ]
-
Pengaturan Konfigurasi Portal: Tambahkan kamus setelan
AKUNdisettings.py:AKUN = { 'SERVER_URL': 'http://127.0.0.1:8000', # URL utama server SSO Akun 'PUBLIC_KEY': """-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA... -----END PUBLIC KEY-----""", # Kunci publik RS256 dari portal SSO Akun }
Contoh Penggunaan
1. Memproteksi View Django dengan Dekorator
Gunakan dekorator @require_akun_auth untuk memastikan pengguna telah masuk sebelum mengakses view.
from django.shortcuts import render
from akun_client import require_akun_auth
@require_akun_auth
def dashboard_view(request):
# Data user teridentifikasi di request.akun_user
user_info = request.akun_user
return render(request, 'dashboard.html', {'user': user_info})
2. Validasi Token Secara Manual (Luring)
Jika Anda ingin melakukan verifikasi token JWT di luar middleware Django:
from akun_client import AkunTokenValidator
public_key = "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"
validator = AkunTokenValidator(public_key)
try:
user_payload = validator.validate("string_token_jwt_disini")
print("Token valid. Payload:", user_payload)
except ValueError as e:
print("Verifikasi gagal:", str(e))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file akun_client-0.1.1.tar.gz.
File metadata
- Download URL: akun_client-0.1.1.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e56e6ec1c32ce67ebc1fb9a8d58fc78ddb775909cf8973cd5bf14af83dae6b9
|
|
| MD5 |
28efec359b056acf171ba6a7f923f31e
|
|
| BLAKE2b-256 |
3a7e01015507fa96b7a34815ad277301796d5b391ba9724efd1003ef4dd71744
|
File details
Details for the file akun_client-0.1.1-py3-none-any.whl.
File metadata
- Download URL: akun_client-0.1.1-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a79fb1eb7d2c154401a2b3f85c65ef9ffadc351c83f271233445fa617d97432b
|
|
| MD5 |
ff86c73f96b93b281320bd141bf037a0
|
|
| BLAKE2b-256 |
b21331ddb05855a48b8a7fc35bd0d2cd2ea71f810b76493acb69f0fc82552381
|