Django Rest Framework OAuth2 Access Token Guidance Required
Я пытаюсь реализовать OAuth и jwt token login в Django Rest Framework для практики. Я использую social-auth-app-django
и djangorestframework_simplejwt
. Я использую базовую документацию и успешно создал пользователя с помощью GitHub (проверил это в Django Admin), а также создал пользователя с помощью Simple CreateAPIView
.
Для входа в систему я могу использовать простой jwt для входа и получения маркера доступа для вызова других аутентифицированных API, но как я могу сделать то же самое, используя учетную запись пользователя, вошедшего в систему OAuth.
Другая проблема, с которой я столкнулся, заключается в том, что всякий раз, когда я посещаю http://localhost:8000/api/auth/login/github/
в браузере, он предлагает мне экран входа в систему, после входа он перенаправляет меня на http://localhost:8000/api/auth/complete/
, который возвращает 404, потому что это не правильная конечная точка в соответствии со стандартной страницей ошибки Django. Она представляет api/auth/complete/<str:backend>/ [name='complete']
как одну из доступных конечных точек. Когда я посещаю /api/auth/complete/github/
, появляется ошибка AuthMissingParameter at /api/auth/complete/github/. Я понятия не имею, что происходит.
Мои settings.py
конфигурации следующие:
INSTALLED_APPS = [
---
# Plugins
"rest_framework",
"corsheaders",
"oauth2_provider",
"social_django",
"rest_framework_social_oauth2",
---
]
REST_FRAMEWORK = {
"DEFAULT_AUTHENTICATION_CLASSES": (
"oauth2_provider.contrib.rest_framework.OAuth2Authentication",
"rest_framework_social_oauth2.authentication.SocialAuthentication",
"rest_framework_simplejwt.authentication.JWTAuthentication",
),
}
AUTHENTICATION_BACKENDS = (
"rest_framework_social_oauth2.backends.DjangoOAuth2",
"django.contrib.auth.backends.ModelBackend",
"social_core.backends.github.GithubOAuth2",
"social_core.backends.spotify.SpotifyOAuth2",
"django.contrib.auth.backends.ModelBackend",
)