Skip to content

Django

View as Markdown

sudomimus-django provides Django views for Connect start, callback, logout, and current-session access.

from django.urls import path
from sudomimus_connect import ConnectClient, ConnectClientAuthWithKey
from sudomimus_session import SessionClient
from sudomimus_django import (
ConnectDjango,
DjangoLoginConfig,
MemoryDjangoCredentialStore,
)
integration = ConnectDjango(
DjangoLoginConfig(
application_anchor="your-app-anchor",
callback_url="https://app.example/auth/callback",
after_login_url="/dashboard",
after_logout_url="/",
),
ConnectClient(client_auth=ConnectClientAuthWithKey(
application_anchor="your-app-anchor",
private_key_pem=private_key_pem,
)),
SessionClient(),
MemoryDjangoCredentialStore(), # Local development only.
)
urlpatterns = [
path("auth/start", integration.start),
path("auth/callback", integration.callback),
path("auth/logout", integration.logout),
]

Call integration.current(request) from a server view to obtain the pairwise subject and access token. The integration does not create a Django User; map that subject to your own user record.

In production, use a server-side Django session backend and implement DjangoCredentialStore with a shared database or Redis. Its update operation must serialize concurrent refreshes for each session ID. Keep Django CSRF middleware enabled and permit the callback URL with a CALLBACK ReturnRule.

View package source