---
title: Django
description: 在 Django 应用中接入 Sudomimus Connect 登录。
editUrl: true
head: []
template: doc
sidebar:
  order: 5
  hidden: false
  attrs: {}
pagefind: true
draft: false
---

`sudomimus-django` 提供 Connect start、callback、logout 与当前 session 读取所需的 Django views。

```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(),  # 仅用于本地开发。
)

urlpatterns = [
    path("auth/start", integration.start),
    path("auth/callback", integration.callback),
    path("auth/logout", integration.logout),
]
```

在服务端 view 中调用 `integration.current(request)`，读取 pairwise subject 与 access token。该集成不会创建 Django `User`；应把 subject 映射到你自己的用户记录。

生产环境应使用服务端 Django session backend，并通过共享数据库或 Redis 实现 `DjangoCredentialStore`。它的 `update` 操作必须按 session ID 串行化并发 refresh。保持 Django CSRF middleware 启用，并通过 CALLBACK ReturnRule 允许 callback URL。

[查看包源码](https://github.com/sudomimus/sudomimus/tree/master/sdks/python/packages/sudomimus-django)