Backport(バックポート) #2060
完了個体識別番号登録必須制から個体識別番号登録任意/取得しない ような設定にした場合、PC版のみ登録が完了しているメンバーがログインできない
100%
説明
Overview (現象)¶
以下のような手順を行った場合、SNSに登録できないメールアドレスが生まれてしまう
1. 「メンバー登録時の携帯個体識別番号取得設定」を「# PC・携帯登録時に携帯個体識別番号の登録を必須にする」にする
2. sns@example.com を招待する
3. PC版でメンバー登録を行い、携帯メールアドレス登録画面で操作を中断する
4. 「メンバー登録時の携帯個体識別番号取得設定」を「# PC・携帯登録時に携帯個体識別番号の登録を必須にする」以外に変更する
5. 操作を中断したsns@example.com が仮登録状態のままになり、ログインもできず・招待も行えないメールアドレスになる
Causes (原因)¶
This issue is caused by dead redirecting to registerEnd action in login process of 3.6.
In 3.4.x and before, login action checks status of authenticated member and make redirect to registerInput action or registerEnd action if it is needed.
However, in 3.6.x, because it obsoletes using credentials in registration process, registering member fails to authenticate. That member is throw out before executing registerEnd action.
ログイン処理における registerEnd アクションへのリダイレクトが、 3.6.x ではおこなわれなくなっていたことが原因。
3.4.x までは、ログイン処理において、認証状態にしたメンバーの現在の状態を確認したうえで「プロフィール登録」(registerInput)、「登録完了」(registerEnd)アクションへの遷移をおこなっていた。
しかし、 3.6.x から登録処理に用いていたクレデンシャルを廃止していたことに伴い、登録中のメンバーはこの分岐処理に至る前の認証処理に失敗するようになってしまっており、 registerEnd アクションを実行することができなくなってしまった。
Way to fix (修正内容)¶
Checking for redirecting to registerBegin and registerEnd is now executed on any authentication state.
registerBegin, registerEnd アクションへリダイレクトするための分岐処理は、認証状態に関わらずおこなうようにした。