perf: 优化用户 access key 的使用和创建 (#11776)

* perf: 优化用户 access key 的使用和创建

* perf: 优化 access key api

---------

Co-authored-by: ibuler <ibuler@qq.com>
This commit is contained in:
fit2bot
2023-10-10 17:52:52 +08:00
committed by GitHub
parent 30b19d31eb
commit 333746e7c4
28 changed files with 417 additions and 330 deletions

View File

@@ -10,7 +10,7 @@ from users.serializers import UserProfileSerializer
from ..models import AccessKey, TempToken
__all__ = [
'AccessKeySerializer', 'BearerTokenSerializer',
'AccessKeySerializer', 'BearerTokenSerializer',
'SSOTokenSerializer', 'TempTokenSerializer',
]
@@ -18,8 +18,8 @@ __all__ = [
class AccessKeySerializer(serializers.ModelSerializer):
class Meta:
model = AccessKey
fields = ['id', 'secret', 'is_active', 'date_created']
read_only_fields = ['id', 'secret', 'date_created']
fields = ['id', 'is_active', 'date_created', 'date_last_used']
read_only_fields = ['id', 'date_created', 'date_last_used']
class BearerTokenSerializer(serializers.Serializer):
@@ -37,7 +37,8 @@ class BearerTokenSerializer(serializers.Serializer):
def get_keyword(obj):
return 'Bearer'
def update_last_login(self, user):
@staticmethod
def update_last_login(user):
user.last_login = timezone.now()
user.save(update_fields=['last_login'])
@@ -96,7 +97,7 @@ class TempTokenSerializer(serializers.ModelSerializer):
username = request.user.username
kwargs = {
'username': username, 'secret': secret,
'date_expired': timezone.now() + timezone.timedelta(seconds=5*60),
'date_expired': timezone.now() + timezone.timedelta(seconds=5 * 60),
}
token = TempToken(**kwargs)
token.save()