feat: add portal allauth account flow

This commit is contained in:
QiuSW
2026-07-03 11:27:45 +08:00
parent 7df2c51903
commit d61a641b7e
29 changed files with 446 additions and 31 deletions
+27 -1
View File
@@ -76,6 +76,11 @@ PAYMENT_MOCK_CALLBACK_SECRET = os.environ.get(
"cmhub-dev-mock-callback-secret" if DEBUG else "",
)
PAYMENT_QR_EXPIRES_MINUTES = env_int("PAYMENT_QR_EXPIRES_MINUTES", 10)
EMAIL_BACKEND = os.environ.get(
"DJANGO_EMAIL_BACKEND",
"django.core.mail.backends.console.EmailBackend",
)
DEFAULT_FROM_EMAIL = os.environ.get("DJANGO_DEFAULT_FROM_EMAIL", "noreply@cmhub.local")
WECHAT_PAY_APPID = os.environ.get("WECHAT_PAY_APPID", "")
WECHAT_PAY_MCHID = os.environ.get("WECHAT_PAY_MCHID", "")
WECHAT_PAY_API_V3_KEY = os.environ.get("WECHAT_PAY_API_V3_KEY", "")
@@ -108,6 +113,8 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'allauth',
'allauth.account',
'rest_framework',
'apps.users',
'apps.portal',
@@ -135,6 +142,7 @@ MIDDLEWARE = [
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'allauth.account.middleware.AccountMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
@@ -143,7 +151,7 @@ ROOT_URLCONF = 'config.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'DIRS': [BASE_DIR / 'apps' / 'portal' / 'templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
@@ -158,6 +166,24 @@ TEMPLATES = [
WSGI_APPLICATION = 'config.wsgi.application'
AUTH_USER_MODEL = 'users.User'
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]
LOGIN_URL = "/login"
LOGIN_REDIRECT_URL = "/dashboard"
LOGOUT_REDIRECT_URL = "/login"
ACCOUNT_ADAPTER = "apps.portal.adapters.CmhubAccountAdapter"
ACCOUNT_EMAIL_VERIFICATION = "mandatory"
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_LOGIN_METHODS = {"email", "username"}
ACCOUNT_SIGNUP_FIELDS = ["username*", "email*", "password1*", "password2*"]
ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = True
ACCOUNT_EMAIL_CONFIRMATION_ANONYMOUS_REDIRECT_URL = "/login"
ACCOUNT_EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL = "/dashboard"
ACCOUNT_EMAIL_SUBJECT_PREFIX = "[cmhub] "
# Database