跳转到内容

Django

查看 Markdown

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

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。

查看包源码