diadia

興味があることをやってみる。自分のメモを残しておきます。

django-allauth環境下でメールアドレスを変更する

条件

メールアドレスでユーザー認証を行う場合に、UserモデルかEmail Addressモデルのどちらのデータを使ってユーザー認証を行っているかわからない。
またEmail Addressインスタンスを変更するとUserモデルインスタンのEメールも自動的に変更されるのかもわからない。この辺を明らかにしていきたい。

検証

Userモデルのemailアドレスをadminから変更する。そして変更後のemailアドレスを使ってログインを試みる。

結果

Userモデルのemailアドレスを変更したところ、変更したアドレスとパスワードを使ってユーザー認証することができた。
また変更前のアドレスとパスワードを使ってもユーザー認証づる事ができた。

結論

Authentication and AuthorizationのUserモデルのemailaddressでもユーザー認証できるし、AccountsのEmail Addressモデルのemailaddressでもユーザー認証できる。したがってemailアドレスを変更する場合には両方とも変更しなければ、セキュリティに問題が生じる。