WordPressをcookie関連設定でログイン不可能にしてみた(cookieブロック・トークン削除・ログイン成功cookie削除)

      2021/02/23   2086文字

今回は、WordPressでよくあるトラブル『ログインできない』についてです。cookie関連の設定・操作でわざと『ログイン不可能みたいな状態』を作ります(cookieブロック・トークン削除・ログイン成功cookie削除)。さっそく、それぞれの場合の挙動を確認してみましょう。ログイントラブル時の役にたつかもしれません。

ブラウザで、cookieブロックしてみる(ログイン不可能になる)

WordPressではたまに、『正しいパスワードを入れてもログインできない』というような状態が発生しますが、その原因の一つになるのが『cookie』です。公式のwordpress.orgでも『認証にcookie使っているから(uses cookies for authentication)、ブラウザでcookie利用可にしないとダメ(you must have cookies enabled)』とアナウンスされています。

そういうわけなので・・・

ブラウザでcookieブロックした状態だと、『正しいユーザーid&パスワード』を入れてもログインが不可能になります。
(管理人のブラウザはvivaldiです。利用ブラウザによって設定画面は異なります。)

解除方法は、cookie受け入れをonにすればokです。

無事に管理画面にはいることができました。ブラウザには『このときのログインについての情報を持ったcookie』が保存されました。

session_tokenを書き換える(コアがきちんと動いていれば特に問題ない)

WordPress日本語Codexには書いていなかったんですけど(マニアックな話題です)データベースのwp_usermetaテーブル内に『session_token』という項目がありました。『a:1{s:64:”(たぶん識別子)”~}』みたいな形で、ログイン情報などが格納されています(ipやブラウザ・UNIXタイムスタンプでのログイン時間・有効期限など)。

データベース上でみてみると、変な文字列が入っていますが(配列)・・・

認証につかっているのかテストするため、

たとえば『u-n-ko』みたいにデータ形式上あり得ない&クソどうでもいい値に、データベース上から書き換えてみます。

ただし、これは影響なしです。

ログイン成功し、その時の情報にsession_token内の値が書き換わりました。データベースやコアがきちんと動いていると、ログイン成功情報に書き換えてくれます。(調べたところ、不具合でここの値書き換えがうまくいかないと、ログインエラーになることもあるようです。)

そして・・・

ブラウザに保存されたcookieにも、このときのログインに関する情報が入りました。

正しくログインできたときのcookie削除(cookieをonでもログイン不可能になる)

つぎの実験は、上記の実験で出てきた『正しくログインできたときのcookie』を、『あえて削除してみる』です。

ブラウザではcookie設定(セッションのみok・ふつうはこれでログインできる)していたにも関わらず、エラーでログインができなくなりました。

エラーで入れなかったので・・・

データベース上では『session_token』の項目がなくなってしまいました(ログインエラーでは、ログイン情報を格納しようもない)。

この状態の解除方法は、『ページ再読み込み』で対応しました。

『session_token』の項目も復活して、このときのログイン情報が書き込まれました。

あとがき・まとめ

  • WordPressは仕様上cookie利用が必須で、cookieブロックするとログイン不可能になる
  • session_tokenをありえない値に書き換えても、データベースやコアがきちんと動いていれば、ログインができて正しい値に書き換えてくれる。 
  • ブラウザでcookie設定をオンにしていても、正しくログインできたときのcookie削除でログイン不可能になる

まとめるとこのような形でしょうか。cookieの状態でもログインエラーにかかわってくることが確認できました。WPでログインエラーが出るとかなり困るんですけど、原因のパターンのうちの一例ということで押さえておいていただくと、対処がしやすくなります(例えば、cookie設定は大丈夫だったけど、変なリダイレクトがかかってるとか)。


【カテゴリ】 - サイトエラー対策と復旧(wp/php/css)
【タグ】 -

  関連記事

【WordPress・WP_Query】おすすめ関連記事が、いつも同じものしか出ません→パラメーターorderbyに『rand』でランダム表示
MySQLデータベースからWordPressテーマ変更・プラグイン停止を行う方法【エラー・管理画面に入れないときに】
WordPressをcookie関連設定でログイン不可能にしてみた(cookieブロック・トークン削除・ログイン成功cookie削除)
【WordPress】人気ブログランキング、新着記事が取得できない→フィード出力で解決・ブログ村は問い合わせ
【WordPress】PHPバージョン、いきなり変えて大丈夫?不安なら公開前にローカルテスト
WPサイト接頭辞エラーまとめ~configやテーブル名変更・usermeta内の項目で、接頭辞不一致の場合
WordPressテーマインストール時、エラーで画面真っ白を復旧させた方法(unexpected T_FUNCTION)
【wpプラグイン】コンタクトフォーム7の自動返信設定と、なぜか発生した文字化けの対処
【WPテーマ不具合修正】Clarina(親llorix-one-lite)で、ブログ更新情報タイトルが二回出るのを直す
WordPressの手動インストール方法(自動インストールがない、あるいはエラーの場合)
WordPressサイトヘルスを『改善が必要→良好』にしたいけど、どうすれば良い?(プラグイン・テーマ・WP/PHPバージョンアップデート)
【WordPress/エラー対策】プラグインbizcalendarが改造テーマで表示しない事例