---
title: Django
description: Add Sudomimus Connect login to a Django application.
editUrl: true
head: []
template: doc
sidebar:
  order: 5
  hidden: false
  attrs: {}
pagefind: true
draft: false
---

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

```python
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](https://github.com/sudomimus/sudomimus/tree/master/sdks/python/packages/sudomimus-django)