私のような初心者を支援する素晴らしい専門家の皆さん、こんにちは!
今回は DRF API でトークン認証を使用していますが、django2 と python3 にアップグレードする前は、少なくともコンピューターからサーバーまでセッション認証が機能していました。開発中にローカル ホストで実行し、/admin(django admin) の管理パネルにログインしてから /docs(swagger UI) に移動すると、ログインを必要としない URL しか表示されません。ただし、csrf トークンとセッションは適切に設定されていますが、django はユーザーを認識していません。ローカルホストだからですか?2要素のセッションを取得するのと同じ問題があるので、ハッキングしたので必要ありませんが、テスト環境で本番サーバーにプッシュしてテストする必要があるかどうか疑問に思っています。私の設定で愚かなエラー?また、他に見たいものがあれば教えてください。投稿します。どうもありがとう!
**編集**私の管理パネルは自動ログインし、セッションからユーザーを適切に取得します。
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',),
'PAGE_SIZE': 20,
'DEFAULT_AUTHENTICATION_CLASSES': (
'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
'rest_framework.authentication.SessionAuthentication',
),
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
)
}
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'mysite.middleware.AnonymousAccessMiddleware',
'django_otp.middleware.OTPMiddleware',
]
SWAGGER_SETTINGS = {
"exclude_namespaces": [], # List URL namespaces to ignore
'USE_SESSION_AUTH': True,
"api_version": '0.1', # Specify your API's version
"api_path": "/", # Specify the path to your API not a root level
"enabled_methods": [ # Specify which methods to enable in Swagger UI
'get',
'post',
'put',
'patch',
'delete'
],
"api_key": 'my token', # An API key
"is_authenticated": True, # Set to True to enforce user authentication,
"is_superuser": True, # Set to True to enforce admin only access
}