Skip to content

Commit 5a20c61

Browse files
committed
Use dynamically generated schema, and use specified username field
1 parent 8281700 commit 5a20c61

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

ninja_jwt/schema.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
from django.contrib.auth import authenticate, get_user_model
55
from django.contrib.auth.models import AbstractUser, update_last_login
66
from django.utils.translation import gettext_lazy as _
7+
from ninja.orm import create_schema
8+
from ninja_jwt.utils import token_error
79
from ninja_schema import ModelSchema, Schema
810
from pydantic import root_validator
911

10-
from ninja_jwt.utils import token_error
11-
1212
from . import exceptions
1313
from .settings import api_settings
1414
from .tokens import RefreshToken, SlidingToken, Token, UntypedToken
@@ -19,6 +19,9 @@
1919
user_name_field = get_user_model().USERNAME_FIELD # type: ignore
2020

2121

22+
AuthUserSchema = create_schema(get_user_model(), fields=[user_name_field])
23+
24+
2225
class 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

7880
class 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

105106
class TokenObtainSlidingSerializer(TokenObtainSerializer):

0 commit comments

Comments
 (0)