こんにちは。
みなさんは、Magentoの管理画面にログインできなくなった事はありますか?
私は先日、管理画面操作中に、急に管理画面からはじき出され、以降、ログインできない状態になり困ってしまいました。
今回はそんな「いきなりログインできなくなった」ケースについて調べてみました。
ログインができない
普段利用しているアカウントでMagentoの管理画面にログインし、いつも通りの操作をしていたところ、いきなりログイン画面が表示されました。
どうもログアウトさせられたようなので、再度同じアカウントでログインし直してみましたが、以下のメッセージが表示されログインできません。何度試しても同じ結果です。
原因は?
結果からお伝えすると、
今回のケースは、アカウントの有効期限設定により、アカウントが無効化された事が原因でした。
無効化されている事は、[System>PERMISSIONS>All Users] の管理者アカウント一覧より確認できます。
【Status】が「Inactive」であれば、そのアカウントは無効状態となります。
有効期限の設定は、管理者アカウントの詳細画面で設定する事ができます。
一番下に【Expiration Date】という項目が表示されるので、ここに有効期限を設定します。
有効期限を設定した場合の挙動は以下の通りです。
①有効期限を迎えるまで
→ アカウントは有効状態「Active」なので普通に使える。
②有効期限を迎えた
→ 有効期限後の操作時にアカウントが無効状態「Inactive」になる。
なので操作中に有効期限を迎えた場合は今回のようにログアウトさせられる。
③以降はこのアカウントではログインができない
そういえば以前、試しに有効期限を設定してみたけど、そのまま記憶の彼方に…。
設定した事をすっかり忘れたままになっていました。
どうやって解決するの?
アカウントが無効化されている事がわかったので、有効化してやれば再度ログインできるようになります。
有効化するには、別のアカウントで管理画面にログインし、ログインできない管理者の詳細画面より【This account is 】の項目を「Inactive」→「Active」に変更します。
これで管理画面にログインができるようになりました、良かった良かった!
…ただ、そもそも、別のアカウント、持ってなかったりしますよね。
別のアカウントも持ってないし、だから管理画面にも入れないし無効化されているかどうかも確認できないし、それを困っているのに、どうやって管理画面から有効化するんだって話しですよね。
そんな時はDBの出番です。
Magentoって、管理画面で設定できる機能が多すぎて把握が難しいので、私はDBデータから調査する事も多いです。
今回の原因もDBの中を覗いて判明しました。
[admin_user]テーブルの「is_active」カラム、これがアカウントの有効/無効を握っています。
mysql> select * From admin_user\G
*************************** 1. row ***************************
user_id: 1
firstname: test
lastname: test
email: xxx@future-s.com
username: admin2
・・・
is_active: 0
該当アカウントのレコード(usernameが一致するレコード)を見つけて、is_activeカラムの状態を確認してください。
「is_active=0」であれば無効化状態になっているので、「is_active=1」にUPDATEしてやれば有効化され、再度ログインできるようになります。
他に考えられる原因
今回のケースには該当しなかったものの、ログインできない or ログアウトさせられる原因として、一例をいくつか紹介してみます。
①アカウントロック
ログイン時の認証を連続して間違うと、アカウントをロックする仕組みがあります。
ロックされると、そのアカウントでのログインが一時的にできなくなります。
ロックされたアカウントは、[System>PERMISSIONS>Locked Users] に一覧表示されるので、もし該当した場合はこの画面から確認する事ができます。ロックの解除も可能です。
②アカウント共有禁止
アカウント共有が禁止されている設定の場合、1つのアカウントを複数端末で同時利用するようなケースでは、先にログインしているアカウントを自動的にログアウトする仕組みがあります。
但しログアウトされても、後からログインしたセッションが優先されるので、再度ログインしなおす事で管理画面を利用する事ができます。
③セッション有効期限切れ
管理画面ログイン後、一定時間、操作しない状態が続いた場合、セッション切れとなり、アカウントをログアウトする仕組みがあります。
但しこの場合も、再度ログインしなおす事で管理画面を利用する事ができます。
④ブラウザのキャッシュやCookieの影響
ブラウザが古いキャッシュを保持していたり、Cookieが無効化や削除されていた場合は、ログインができない状態になる事があります。
その場合は、ブラウザのキャッシュやCookieをクリアして試したり、他のブラウザを利用する事でログインできる場合があります。