首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用"django-rest-framework-simplejwt“中的”电话号码“和”of“而不是”`username`“和”`password`“来生成令牌?

如何使用"django-rest-framework-simplejwt“中的”电话号码“和”of“而不是”`username`“和”`password`“来生成令牌?
EN

Stack Overflow用户
提问于 2022-07-19 12:34:48
回答 1查看 187关注 0票数 0

#urls.py

我只想知道如何设置自定义字段,例如,代替“用户名”和“密码”,我能得到'phone_number‘和otp吗?

代码语言:javascript
复制
from django.urls import path
from . import views
from . import api_views
from django.conf.urls.static import static
from django.conf import settings


from rest_framework_simplejwt.views import (TokenObtainPairView,TokenRefreshView,)


urlpatterns = [

    # Api Urls
    path('api/',api_views.getRoutes,name="api"),
    path('api/register',api_views.registerPatient,name="signup"),
    path('api/patient/',api_views.getPatients,name="patients"),
    path('api/create/',api_views.CreatePatient,name="create"),
    path('api/patient/<str:pk>/',api_views.getPatient,name="patient"),
    path('api/update/<str:pk>/',api_views.updatePatient,name="update"), 
    path('api/delete/<str:pk>/',api_views.deletePatient,name="delete"),
    path('api/login/',TokenObtainPairView.as_view(), name='token_obtain_pair'),
    path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),

    path('api/doctor/',api_views.doctorRegister,name="doctorreg"),
    
    path('api/getroutes/', api_views.getRoutes, name='getroutes'),

    path('api/sotp/',api_views.send_otp,name="sotp"),
    path('api/votp/',api_views.verify_otp,name="votp"),
    path('api/signup/',api_views.registerPatient,name="signup"),
]```
EN

回答 1

Stack Overflow用户

发布于 2022-07-19 12:45:09

您必须创建自己的TokenSerializerTokenView类,这些类继承自TokenObtainPairSerializerTokenObtainPairView,可以在这些类中定义令牌声明。更多信息这里

代码语言:javascript
复制
class MyTokenObtainPairSerializer(TokenObtainPairSerializer):
    @classmethod
    def get_token(cls, user):
        token = super().get_token(user)

        # Add custom claims
        token['phone_number'] = user.phone_number
        # ...

        return token

class MyTokenObtainPairView(TokenObtainPairView):
    serializer_class = MyTokenObtainPairSerializer

在URL中

代码语言:javascript
复制
path('api/login/', MyTokenObtainPairView.as_view(), name='token_obtain_pair'),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73037013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档