ユーザー名とパスワードだけでなく、関連モデルの特定のフィールドもチェックしてユーザーを認証できるようにする Django アプリを作成しました。POST
エンドポイントに送信するカスタム リクエストの本文は次のとおりです。
payload = { 'username': user, 'password': password, 'app_id': uuid4}
モジュールを使用djangorestframework-simplejwt
してアクセストークンを取得しています。
models.py
class Application(models.Model):
app_name = models.CharField(max_length=300)
app_id = models.UUIDField(default=uuid.uuid4, editable=False)
def __str__(self):
return self.app_name
class ProfileApp(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
app = models.ForeignKey(Application, on_delete=models.CASCADE)
expires_on = models.DateTimeField(default=datetime.now() + timedelta(days=15))
def __str__(self):
return self.app.app_name + " | " + self.user.username
日付がまだ期限切れになっていない場合にのみユーザーを認証するようにTokenObtainPairView
fromをオーバーライドすることは可能ですか? または、このようにすることでアーキテクチャの問題がありますか?rest_framework_simplejwt
expires_on