DoesNotExist at /rest-auth/login/
EmailAddress matching query does not exist.
Djangoのall-authを使用してAPI開発をしている時に起こったエラーです。
DjangoのUserモデルは変更していない、きちんとユーザーの登録もしているにも関わらずエラーが発生してしまうということになってしまったのです。
settings.pyの
ACCOUNT_EMAIL_REQUIRED = True
をFalseにするとなんとなくわかるのですが、
assert ( not self.AUTHENTICATION_METHOD == self.AuthenticationMethod.EMAIL ) or self.EMAIL_REQUIRED
ここの部分でエラーが発生してしまうのです。
そうこうしていってみていってみると、
これはDjangoのデフォルトで入っているUserモデルの他の部分も使用してUserを管理しているためであることが原因です。
具体的なaccount_emialaddressテーブルを見てもらうとわかりますが、Emailはこちらの方でも管理されるようになっています。
そのため、まずここにも認証に使用するEmailが存在することが必要になるのです。
次に、ここにメールアドレスが追加されたとしても、アカウント作成時にEmailを使用した2段階認証を設定していると、
verifiedにフラグを立てる(1を設定する)必要があります。
こうして、実際にログインしてみると、
きちんとキーが発行されてくるというわけですね。