web-dev-qa-db-ja.com

ユーザーがログインできないことがある

Drupal 7.5、PHP 5.6.27 Debian 8、リモートホスト。

一部のユーザーが一部の時間にログインできず、複数回試行しても機能する場合があるという問題が発生しています。ユーザーはさまざまなブラウザーで問題を報告しており、影響を受けると思われる人はごくわずかです。私は時々エラーを再現できるだけであり、非常に一貫性がないことに注意してください。

Watchdogは、フロントページにユーザーがログインしていないことを示している場合でも、ユーザーに対してセッションが開かれていることを示すだけです。

編集:ユーザーは通常、最初に間違ったパスワードを入力するとログインできます!

私が試したもの:

  • cookie_domainをwwwから変更しました。に。
  • 書き換え条件がhttpsを許可することを確認
  • クリアDrupalキャッシュ
  • 外部キャッシュはありません
  • ポート80からdefault-ssl.confのみへのリダイレクトを追加
  • ユーザーは、drush uli "[username]で生成された1回限りのログインリンクで常にログインできるわけではありません(サイトはユーザーにログインを要求します)
  • 新しいカスタムセッションを設定するカスタムログインモジュールの作成 ここで推奨
  • この投稿 で提案されているように、cookie構成をsites/default/settings.phpファイルに追加しました
  • PHP 5.5および異なるsettings.php .htaccessとphpおよびmysqlの設定を使用して、別の環境にWebサイトをインストールしました。

既知の回避策:手がかりを提供する場合としない場合があります。

  • 場合によっては、ユーザーのパスワードを変更すると、その方法で取得される可能性があります
  • ユーザーが意図的に間違ったパスワードを最初に入力してログインした場合、ユーザーはログインできます。
  • 場合によっては、ユーザーがアクセスするための1回限りのログインリンクを提供できますが、それが常に機能するとは限りません

編集:さまざまな設定ファイルを使用してローカル開発環境で問題を再現することができました。関連性がないことがわかったので、元の投稿からすべての設定ファイル情報を削除しました。

3
Christia

これは、サイトがログイン時に別のドメインまたはセキュア/非セキュアプロトコルにリダイレクトしている場合に発生する可能性があります。つまり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

3
enzipher

ここには、何らかのキャッシュ機能が働いていると思います。一意のログイン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に基​​づいてページをキャッシュしていることを強く示唆しています。

3
adfaklsdjf

私が正しく推測できた場合、ユーザーは5回パスワードを忘れたか、間違ったパスワードを入力した可能性があり、その結果、6時間以上アクセスがブロックされます。彼らがアクセスできるようになるクールダウン期間を投稿してください。 drupal開発者は、すぐにアクセスできるように、データベースのフラッドテーブルからIPを消去する必要があります。

0
Pranay Agarwal