Django oauth2 с использованием электронной почты вместо имени пользователя
авторизация:
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
from rest_framework_simplejwt.views import TokenObtainPairView
class MyTokenObtainPairSerializer(TokenObtainPairSerializer):
@classmethod
def get_token(cls, user):
token = super().get_token(user)
token['email'] = user.email
return token
class MyTokenObtainPairView(TokenObtainPairView):
serializer_class = MyTokenObtainPairSerializer
урлы:
from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings
from rest_framework_simplejwt.views import TokenRefreshView
from api.authorization import MyTokenObtainPairView
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('api.urls')),
path('api/token/', MyTokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
] + static(
settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT
)
Я получаю "имя пользователя": ["Это поле обязательно"], когда я пытаюсь опубликовать свою информацию, я использую электронную почту и пароль. Я видел, что кто-то использует авторизацию, поэтому попробовал, но, похоже, ничего не вышло. Не знаю, где я напортачил.
{
"email": "aleksa@gmail.com",
"password": "Admin!123"
}