Skip to content

Instantly share code, notes, and snippets.

@ryu22e
Last active December 11, 2018 01:36
Show Gist options
  • Save ryu22e/37b7e085014684c38c8abdf245031d17 to your computer and use it in GitHub Desktop.
Save ryu22e/37b7e085014684c38c8abdf245031d17 to your computer and use it in GitHub Desktop.
users/models.py
"""users/models.py"""
import pickle
from django.contrib.auth import models as auth_models
from django.db import models
class User(auth_models.AbstractUser):
"""ユーザー(AUTH_USER_MODELにこれを設定する)"""
display_name = models.CharField(max_length=50, verbose_name="表示名")
class WebAuthnPublicKeyManager(models.Manager):
"""WebAuthnPublicKey用のカスタムマネージャー"""
def credentials(self, username):
credential_data_list = (
self.
filter(user__username=username).
values_list('credential_data', flat=True)
)
return (
pickle.loads(c)
for c in credential_data_list
)
class WebAuthnPublicKey(models.Model):
"""WebAuthn公開鍵"""
objects = WebAuthnPublicKeyManager()
user = models.ForeignKey(
to=User,
on_delete=models.CASCADE,
verbose_name="ユーザー",
)
credential_data = models.BinaryField(verbose_name="認証情報", max_length=1024)
class Meta:
verbose_name = "WebAuthn公開鍵"
verbose_name_plural = "WebAuthn公開鍵"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment