rest_framework_simplejwt 令牌中的 Exp 或 iat 时间
Exp or iat time in rest_framework_simplejwt token
如何获取jwt token过期时间或发行时间,在Django rest framework简单的jwt库中。我需要通过令牌过期时间来响应客户端。
您必须编写自定义序列化程序。例如,如果它是您想要 return 令牌到期时间的 TokenObtainPairView
视图,则创建一个继承自 TokenObtainPairView
的自定义视图和一个继承自 [=17] 的自定义序列化程序=].
例如:
在你的urlpatterns
中:
path('api/token/', CustomTokenObtainPairView.as_view(), name='token_obtain_pair'),
自定义视图:
from rest_framework_simplejwt.views import TokenObtainPairView
class CustomTokenObtainPairView(TokenObtainPairView):
serializer_class = CustomTokenObtainPairSerializer
自定义序列化程序:
from datetime import datetime
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
class CustomTokenObtainPairSerializer(TokenObtainPairSerializer):
def validate(self, attrs):
data = super().validate(attrs)
refresh = self.get_token(self.user)
data['refresh'] = str(refresh)
data['access'] = str(refresh.access_token)
# Add custom data here
data['access_token_lifetime'] = str(refresh.access_token.lifetime)
data['access_token_expiry'] = str(datetime.now() + refresh.access_token.lifetime)
if api_settings.UPDATE_LAST_LOGIN:
update_last_login(None, self.user)
return data
如何获取jwt token过期时间或发行时间,在Django rest framework简单的jwt库中。我需要通过令牌过期时间来响应客户端。
您必须编写自定义序列化程序。例如,如果它是您想要 return 令牌到期时间的 TokenObtainPairView
视图,则创建一个继承自 TokenObtainPairView
的自定义视图和一个继承自 [=17] 的自定义序列化程序=].
例如:
在你的urlpatterns
中:
path('api/token/', CustomTokenObtainPairView.as_view(), name='token_obtain_pair'),
自定义视图:
from rest_framework_simplejwt.views import TokenObtainPairView
class CustomTokenObtainPairView(TokenObtainPairView):
serializer_class = CustomTokenObtainPairSerializer
自定义序列化程序:
from datetime import datetime
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
class CustomTokenObtainPairSerializer(TokenObtainPairSerializer):
def validate(self, attrs):
data = super().validate(attrs)
refresh = self.get_token(self.user)
data['refresh'] = str(refresh)
data['access'] = str(refresh.access_token)
# Add custom data here
data['access_token_lifetime'] = str(refresh.access_token.lifetime)
data['access_token_expiry'] = str(datetime.now() + refresh.access_token.lifetime)
if api_settings.UPDATE_LAST_LOGIN:
update_last_login(None, self.user)
return data