電話と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 を実装する方法がわかりません。