简单JWT身份验证怎么在DRF项目中使用

  介绍

这篇文章给大家介绍简单JWT身份验证怎么在DRF项目中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

登录返回令牌和刷新

<强>用户模型类:

我的用户模型类继承的是<代码> django.contrib.auth.models。AbstractUser>

如果继承该类,我们就必须在设置中配置<代码> AUTH_USER_MODEL=皍sers.UserProfile"

得到datetime  import  datetime      得到django.db  import 模型   得到django.contrib.auth.models  import  AbstractUser   #,Create  your  models 这里。      class  UserProfile (AbstractUser):   “才能”;“   用才能户   “才能”;“   name 才能=,models.CharField (max_length=30, null=True,,空白=True, verbose_name=靶彰?   时间=birthday 才能;models.DateField (null=True,,空白=True,, verbose_name=俺錾暝隆?   时间=gender 才能;models.CharField (max_length=6,,选择=((“male",, u"男“),,(“female",,“女“)),,默认=癴emale",, verbose_name=靶员稹?   mobile 才能=,models.CharField (null=True,,空白=True,, max_length=11, verbose_name=暗缁啊?   email 才能=,models.CharField (max_length=100,, null=True,,空白=True, verbose_name=坝氏洹?      class 才能;元:   ,,,verbose_name =,“用户”;   ,,,verbose_name_plural =,“用户”;      def 才能__str__(自我):   ,,,return  self.username

<强>序列化文件:

注意这里使用的<代码>用户> django.contrib.auth.get_user_model 实例化获取。

在<代码> 用户模块的<代码> serializers.py 文件中写如下序列化类继承自<代码> rest_framework_simplejwt.serializers。TokenObtainPairSerializer :

凹虻WT身份验证怎么在DRF项目中使用“

得到django.contrib.auth  import  get_user_model   时间=User  get_user_model ()      class  MyTokenObtainPairSerializer (TokenObtainPairSerializer):   @classmethod才能   def 才能get_token (cls,用户):   ,,,token =,超级().get_token(用户)   ,,,令牌(& # 39;名字# 39;],=user.username   ,,,return 令牌      def 才能验证(自我,,attrs):   ,,,,,,   ,,,登录返回令牌和刷新   ,,,:param  attrs:   ,,,:返回:   ,,,,,,   ,,,data =,超级(). validate (attrs)   ,,,数据(& # 39;标记# 39;],=,str(数据(“access"))   ,,,return 数据

根据官方文档的说明,<代码> get_token 方法之所以设置<代码>标记(& # 39;名字# 39;]>

<强>编写视图类:

得到users.serializers  import  MyTokenObtainPairSerializer      class  MyTokenObtainPairView (TokenObtainPairView):   serializer_class 才能=,MyTokenObtainPairSerializer

<强>编写url:

其中<代码> api/令牌/和<代码> api/令牌/更新/> <李>

<代码> api/令牌/> <李>

<代码> api/令牌/更新/> 得到django.conf.urls  import  url   得到django.urls  import 包括路径      得到rest_framework_simplejwt.views  import  (   TokenObtainPairView才能,   TokenRefreshView才能,   )      urlpatterns =, (   #,才能simple  jwt 认证接口   路径才能(& # 39;api/令牌/& # 39;,,TokenObtainPairView.as_view (),, name=& # 39; token_obtain_pair& # 39;),   路径才能(& # 39;api/令牌/更新/& # 39;,,TokenRefreshView.as_view (),, name=& # 39; token_refresh& # 39;),   路径才能(& # 39;登录/& # 39;,,MyTokenObtainPairView.as_view (),, name=& # 39; token_obtain_pair& # 39;),   )

<强>设置配置SIMPLE_JWT:

这是对令牌的一些自定义设置包括获取的牌和刷新的生命周期等配置,通过查看<代码> rest_framework_simplejwt>

<>强启动程序访问:

凹虻WT身份验证怎么在DRF项目中使用“

简单JWT身份验证怎么在DRF项目中使用