View on GitHub

認証の準備

Home

認証の準備

パッケージのインストール

(recsys_full) backend$
 pip install djangorestframework
 pip install django-filter
 pip install djangorestframework-simplejwt

(recsys_full) backend$ pip freeze
...(略)...
django-filter==26.1
djangorestframework==3.18.0
djangorestframework_simplejwt==5.5.1
...(略)...

設定ファイル

src/backend/config/settings/base.py

......
import os
from pathlib import Path
from datetime import timedelta  # <- 追加
......
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'django.contrib.postgres',
    'api.online.apps.OnlineConfig',
    'api.accounts.apps.AccountsConfig',
    'rest_framework',  # <- 追加
    'django_filters',  # <- 追加
]
......
AUTH_USER_MODEL = 'accounts.CustomUser'

# ↓追加
REST_FRAMEWORK = {
    "DEFAULT_AUTHENTICATION_CLASSES": (
        "rest_framework_simplejwt.authentication.JWTAuthentication",
    ),
    "DEFAULT_PERMISSION_CLASSES": (
        "rest_framework.permissions.IsAuthenticated",
    ),
}

SIMPLE_JWT = {
    "ACCESS_TOKEN_LIFETIME": timedelta(minutes=60),
    "REFRESH_TOKEN_LIFETIME": timedelta(days=7),
    "AUTH_HEADER_TYPES": ("Bearer",),

    "SIGNING_KEY": os.environ.get("JWT_SIGNING_KEY", SECRET_KEY),
}
# ↑追加

src/backend/config/settings/development.py

......
if not SECRET_KEY:
    SECRET_KEY = 'django-insecure-local-dev-only-do-not-use-in-production'
    SIMPLE_JWT = {**SIMPLE_JWT, 'SIGNING_KEY': os.environ.get('JWT_SIGNING_KEY', SECRET_KEY)}  # <- 追加
......