Drupal 7.5、PHP 5.6.27 Debian 8、リモートホスト。
一部のユーザーが一部の時間にログインできず、複数回試行しても機能する場合があるという問題が発生しています。ユーザーはさまざまなブラウザーで問題を報告しており、影響を受けると思われる人はごくわずかです。私は時々エラーを再現できるだけであり、非常に一貫性がないことに注意してください。
Watchdogは、フロントページにユーザーがログインしていないことを示している場合でも、ユーザーに対してセッションが開かれていることを示すだけです。
編集:ユーザーは通常、最初に間違ったパスワードを入力するとログインできます!
私が試したもの:
drush uli "[username]
で生成された1回限りのログインリンクで常にログインできるわけではありません(サイトはユーザーにログインを要求します)既知の回避策:手がかりを提供する場合としない場合があります。
編集:さまざまな設定ファイルを使用してローカル開発環境で問題を再現することができました。関連性がないことがわかったので、元の投稿からすべての設定ファイル情報を削除しました。
これは、サイトがログイン時に別のドメインまたはセキュア/非セキュアプロトコルにリダイレクトしている場合に発生する可能性があります。つまりwwwあり/なし、またはhttp/httpsへ。その場合は、settings.phpでベースドメインとCookieドメインを設定するか、.htaccess
でwww/non-wwwリダイレクトを有効にします。
PHP 5.6.1。
https://www.drupal.org/node/2723927
https://www.drupal.org/node/2379019
ここには、何らかのキャッシュ機能が働いていると思います。一意のログインURLを生成することで提供されたデモユーザーで正常にログインできることがわかりました。作成した一意のログインURLはそれぞれ1回だけ機能し、その後は機能しなくなりました。これは、何かがURLに基づいてページをキャッシュしていること、および動的バックエンド機能(PHP)がそのURLを介してログインする後続の試行で有効でなくなったことを強く示唆しています。
たとえば、/user/login
を介してログインできませんでしたが、手動で/user
に切り替えたところ、1回ログインできましたが、ログアウトした後、それを介してログインできませんでした。もうURL。一連の?itok=asdf
クエリパラメータをログインURLに追加してみましたが、それぞれが1回だけ機能します。クエリ文字列の最後に数値を追加すると機能しないように見えたため、?itok=asdf1
は機能しましたが、?itok=asdf2
を試しても機能しませんでしたが、?itok=asd
は機能しました。
私はすでに/user/login/a
および/usr/login/b
をさらにテストして書き込みました。これを自分でテストするために、一意のアルファベットのプレフィックスを考え、次にアルファベット順に追加することをお勧めします。
/user/login/prefix
/user/login/prefixa
/user/login/prefixb
...など
もう一度注意してください。私のテストでは、各URLは1回だけ機能し、「決して」機能しません。テストを繰り返すには、新しいURLを作成し続ける必要があります。
上記のように、これは、何かがURLに基づいてページをキャッシュしていることを強く示唆しています。
私が正しく推測できた場合、ユーザーは5回パスワードを忘れたか、間違ったパスワードを入力した可能性があり、その結果、6時間以上アクセスがブロックされます。彼らがアクセスできるようになるクールダウン期間を投稿してください。 drupal開発者は、すぐにアクセスできるように、データベースのフラッドテーブルからIPを消去する必要があります。