mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-06 01:40:52 +00:00
fix: 修复创建token的问题
This commit is contained in:
@@ -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)
|
||||
|
@@ -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)
|
||||
|
||||
|
Reference in New Issue
Block a user