瀏覽代碼

fix(token): use random 8-byte int to avoid user-specific ID collisions

Peter Thomassen 6 年之前
父節點
當前提交
62ef5b9f52
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      api/desecapi/models.py

+ 2 - 1
api/desecapi/models.py

@@ -9,6 +9,7 @@ from django.core.validators import MinValueValidator
 from collections import OrderedDict
 import rest_framework.authtoken.models
 from time import time
+import random
 from os import urandom
 from base64 import b64encode
 
@@ -58,7 +59,7 @@ class Token(rest_framework.authtoken.models.Token):
 
     def save(self, *args, **kwargs):
         if not self.user_specific_id:
-            self.user_specific_id = int(time() * 100000)
+            self.user_specific_id = random.randrange(16**8)
         super().save(*args, **kwargs) # Call the "real" save() method.
 
     def generate_key(self):