mirror of
https://github.com/jlengrand/bugsink.git
synced 2026-03-10 08:01:17 +00:00
21 lines
631 B
Python
21 lines
631 B
Python
import secrets
|
|
|
|
from django.db import models
|
|
from django.core.validators import RegexValidator
|
|
|
|
|
|
def generate_token():
|
|
# nchars = nbytes * 2
|
|
return secrets.token_hex(nbytes=20)
|
|
|
|
|
|
class AuthToken(models.Model):
|
|
"""Global (Bugsink-wide) token for authentication."""
|
|
token = models.CharField(max_length=40, unique=True, default=generate_token, validators=[
|
|
RegexValidator(regex=r'^[a-f0-9]{40}$', message='Token must be a 40-character hexadecimal string.'),
|
|
])
|
|
created_at = models.DateTimeField(auto_now_add=True, editable=False)
|
|
|
|
def __str__(self):
|
|
return f"AuthToken(token={self.token})"
|