Bug(バグ) #2469
Yuya Watanabe さんが約13年前に更新
h3. 概要
ログイン停止にしたメンバで自動ログインにチェックを入れてログインしようとしたときに「Internal Server Error」が発生する.
h3. 再現方法
# 管理画面のメンバ管理(/pc_backend.php/member/list)でIDが1のメンバのログイン停止を行う
** より具体的には(pc_backend.php/member/reject/id/1)で「有効にする」をクリックする
# SNSのログイン画面を開いてIDが1のメンバのメールアドレス及びパスワードの入力と「次回から自動的にログイン」にチェックを入れる
** 「現在、サーバが混み合っているか、メンテナンス中です。」という表示がされる
h3. 原因
以下の箇所で249行目ではログインが停止されているという理由でログアウト状態となるが,251行目ではフォーム内容を確認し253行目を実行する.
この253行目を実行する際に同ファイル184行目でメンバIDを取得するが,249行目ですでにログアウト状態となっていてメンバIDを取得できないためLogicException()が発生する.
lib/user/opSecurityUser.class.php
<pre>
249 $this->initializeUserStatus();
250
251 if ($this->getAuthAdapter()->getAuthForm()->getValue('is_remember_me'))
252 {
253 $this->setRememberLoginCookie();
254 }
</pre>
<pre>
181 else
182 {
183 $rememberKey = opToolkit::getRandom();
184 if (!$this->getMemberId())
185 {
186 throw new LogicException('No login');
187 }
188 $this->getMember()->setConfig('remember_key', $rememberKey);
</pre>
h3. 確認環境
OpenPNE3.7.0-dev (master)
OpenPNE3.6.0-dev (stable-3.6.x)