操作
Backport(バックポート) #2453
完了自動ログイン時に自動ログイン用のCookieが削除される
開始日:
2011-10-03
期日:
進捗率:
100%
予定工数:
説明
概要¶
ログイン時に自動ログインにチェックを入れているにも関わらず,次回自動ログインは成功するが,その次の自動ログインに失敗する.
失敗する原因として自動ログイン用のCookieが削除されていることが確認されている.
この問題は #2139 によって修正されたはずであるが, #2315 の修正によって再度発生するようになった.
再現手順¶
- SNSに自動ログインを有効にしてログイン
- ブラウザ終了
- 同ブラウザでSNSにアクセス
- 同ブラウザ終了
- 同ブラウザでSNSにアクセス
- ログアウト状態となっている
問題までの処理の流れ¶
- メンバが「次回から自動的にログイン」にチェックをいれてログインする
- 自動ログイン用のCookieと今回限りのログイン用のCookieがサーバから送られてきてブラウザに保存される
- ブラウザを終了する
- 今回限りのログイン用Cooikeが削除されるが自動ログイン用Cookieは残ったままとなる
- ブラウザを立ち上げてSNSにアクセスする
- 最初は未ログイン状態となりopAnonymousMemberのインスタンスが生成される
- opAnonymousMember生成時にログアウト処理が行われて自動ログイン用Cookieを削除する処理が行われる
- ブラウザから送られて来た自動ログイン用Cookieを用いてopRememberLoginFilterがログインに成功する
- ログインを完了してSNSを表示したときには今回限りのログイン用Cookieが存在するが自動ログイン用Cookieが削除されている状態となる
- ブラウザを終了する
- 今回限りのログイン用Cookieが削除されてなにもない状態となる
- ブラウザを立ち上げてSNSをにアクセスする
- opAmonymouseMemberとしてログイン画面にリダイレクトされる
原因¶
#2315 で修正されたコミット( 7fc9dfcc ) で下記部分においてopAnonymousMemberのインスタンス生成時にログアウト処理が行われるように修正されたため.
lib/user/opSecurityUser.class.php 330行目
321 /** 322 * Initializes all credentials associated and status with this user. 323 */ 324 public function initializeUserStatus() 325 { 326 opActivateBehavior::disable(); 327 $member = $this->getMember(); 328 opActivateBehavior::enable(); 329 330 if ($member instanceof opAnonymousMember || $member->getIsLoginRejected()) 331 { 332 $this->logout(); 333 $isSNSMember = false; 334 } 335 else 336 { 337 $isSNSMember = (bool)$member->getIsActive(); 338 } 339 340 $this->setIsSNSMember($isSNSMember); 341 if ($isSNSMember) 342 { 343 $member->updateLastLoginTime(); 344 } 345 }
修正方針¶
参考¶
wa ta さんが約13年前に更新
- ステータス を New(新規) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 4e715d63162e02bc1e320c14c015200813e93b93 で適用されました。
Kousuke Ebihara さんが約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Yuma Sakata さんが約13年前に更新
- ステータス を Pending Testing(テスト待ち) から Rejected(差し戻し) に変更
- 進捗率 を 70 から 50 に変更
テスト実施しましたが、修正が必要な点がありましたので確認お願いします。
firefox3で自動ログインOFFの場合の正常動作確認¶
- 試験手順
1. firefox3にてSNSに自動ログインを無効にしてログイン
2. firefox3終了
3. firefox3を起動
4. SNSにアクセス
- 試験結果
ログイン画面ではなく、メンバーのホーム画面に遷移する
- 修正方針
ログイン画面に遷移するように修正お願いします。
Kousuke Ebihara さんが約13年前に更新
- ステータス を Rejected(差し戻し) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Yuma Sakata は書きました:
テスト実施しましたが、修正が必要な点がありましたので確認お願いします。
firefox3で自動ログインOFFの場合の正常動作確認¶
- 試験手順
1. firefox3にてSNSに自動ログインを無効にしてログイン
2. firefox3終了
3. firefox3を起動
4. SNSにアクセス
- 試験結果
ログイン画面ではなく、メンバーのホーム画面に遷移する
- 修正方針
ログイン画面に遷移するように修正お願いします。
この指摘についてですが、 Firefox 起動時に前回終了時のタブをリストアする設定にしていた場合に、Firefox 側でセッションクッキーを削除しないことが原因であることがわかりました。ブラウザ設定上の問題(問題というより、 Firefox がこのような機能を提供しているだけ)であり、 Web アプリケーションで対応可能なものではありません。
Yuma Sakata さんが約13年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
テストOKです。
操作