44from django .contrib .auth import authenticate , get_user_model
55from django .contrib .auth .models import AbstractUser , update_last_login
66from django .utils .translation import gettext_lazy as _
7+ from ninja .orm import create_schema
8+ from ninja_jwt .utils import token_error
79from ninja_schema import ModelSchema , Schema
810from pydantic import root_validator
911
10- from ninja_jwt .utils import token_error
11-
1212from . import exceptions
1313from .settings import api_settings
1414from .tokens import RefreshToken , SlidingToken , Token , UntypedToken
1919user_name_field = get_user_model ().USERNAME_FIELD # type: ignore
2020
2121
22+ AuthUserSchema = create_schema (get_user_model (), fields = [user_name_field ])
23+
24+
2225class TokenObtainSerializer (ModelSchema ):
2326 class Config :
2427 model = get_user_model ()
@@ -69,10 +72,9 @@ def get_token(cls, user: Type[AbstractUser]) -> Type[Token]:
6972 )
7073
7174
72- class TokenObtainPairOutput (Schema ):
75+ class TokenObtainPairOutput (AuthUserSchema ):
7376 refresh : str
7477 access : str
75- username : str
7678
7779
7880class TokenObtainPairSerializer (TokenObtainSerializer ):
@@ -97,9 +99,8 @@ def output_schema(self):
9799 return TokenObtainPairOutput (** self .dict (exclude = {"password" }))
98100
99101
100- class TokenObtainSlidingOutput (Schema ):
102+ class TokenObtainSlidingOutput (AuthUserSchema ):
101103 token : str
102- username : str
103104
104105
105106class TokenObtainSlidingSerializer (TokenObtainSerializer ):
0 commit comments