6

電話とOTPでログインしたいので、私のアプリはパスワードを必要としません。電話番号のみを使用し、パスワードを使用しないカスタムの単純な JWT トークン認証を実装しようとしています。私はDjangoが初めてで、stackoverflowでいくつかのリンクをチェックして、これを試しました:

class CustomSerializer(TokenObtainPairSerializer):

def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.fields[self.username_field] = serializers.CharField()
    del self.fields['password']



def validate(self,attr):
    print(attr)
    
    data = super().validate(attr)
    token = self.get_token(self.user)
    print (token)
    try:
        request = self.context["request"]
        print(request)
    except KeyError:
        pass
    request_data = json.loads(request.body)
    print(request_data)
 

したがって、ここでvalidateメソッドが実行されると、validate initメソッドに進みTokenObtainPairSerializer、パスワードを検証している親クラスのinitメソッドを呼び出します。そのため、カスタム シリアライザーのパスワード フィールドを削除しても、パスワードのキー エラーが発生します。key-error を渡そうとしましたが、再び で失敗しましたrequest.body

私はこれに行き詰まっており、パスワードなしで単純な JWT を実装する方法がわかりません。

4

1 に答える 1