fix: 修复创建token的问题

This commit is contained in:
ibuler
2021-11-11 19:07:13 +08:00
committed by xinwen
parent 8761ed741c
commit 353b66bf8f
4 changed files with 15 additions and 9 deletions

View File

@@ -33,8 +33,8 @@ class TokenCreateApi(AuthMixin, CreateAPIView):
self.check_user_mfa_if_need(user)
self.check_user_login_confirm_if_need(user)
self.send_auth_signal(success=True, user=user)
self.clear_auth_mark()
resp = super().create(request, *args, **kwargs)
self.clear_auth_mark()
return resp
except errors.AuthFailedError as e:
return Response(e.as_data(), status=400)

View File

@@ -54,9 +54,9 @@ class BearerTokenSerializer(serializers.Serializer):
user.last_login = timezone.now()
user.save(update_fields=['last_login'])
def create(self, validated_data):
def get_request_user(self):
request = self.context.get('request')
if request.user and not request.user.is_anonymous:
if request.user and request.user.is_authenticated:
user = request.user
else:
user_id = request.session.get('user_id')
@@ -65,6 +65,12 @@ class BearerTokenSerializer(serializers.Serializer):
raise serializers.ValidationError(
"user id {} not exist".format(user_id)
)
return user
def create(self, validated_data):
request = self.context.get('request')
user = self.get_request_user()
token, date_expired = user.create_bearer_token(request)
self.update_last_login(user)