私は自分のサイト用のプラグインを書きました。「ユーザーがサイトにログインしたらログアウトし、次にブラウザの戻るボタンをクリックするとログインページの代わりに前のページが再度表示される」という問題があります。今回の問題では、以下のJSコードを使用して修正しました。
history.pushState(null, null, document.URL);
window.addEventListener('popstate', function () {
history.pushState(null, null, document.URL);
});
ブラウザの戻るボタンの問題は修正されましたが、上記のjsコードを追加した後、ブラウザの戻るボタンが完全に無効になるという新しい問題が発生しました。
テーマfunctions.phpファイルに書き込めるフックはありますか?そのため、ユーザーがログアウト後にブラウザの戻るボタンをクリックした場合にこの問題を解決できますか?誰もがそれを修正する方法を教えてください?
私は以下のものを試しましたが、どちらもうまくいきませんでした:
<script>
window.onhashchange = function() {
<?php if( ! is_user_logged_in()) { $this->tewa_login(); } ?>
}
<script>
誰が私に言うことができるPLZ何が間違っている!
ユーザー がログアウトすると 、現在のユーザーセッションは破棄され、ユーザーがログインしなければならない新しいページをロードすることはできません。ブラウザの「戻る」ボタン。通常、ローカルキャッシュからページを取得します。現在のセッションがまだ有効かどうかを確認するためのサーバーとの連絡はありません。
そのため、バックスペースボタンが押されたかどうかを検出し、その場合はセッションの有効性を確認します。これは、このアクションがユーザー側で行われる必要があるため、ページに含まれるJavaScriptの一部が存在する必要があることを意味します。私はセキュリティの専門家ではありませんが、バックスペースを検出する一般的な方法は次のようになります。
window.onhashchange = function() {
.. your action ..
}
このメソッドには いくつかの不備 があります。今、あなたの行動はサーバーにコールバックすることでなければなりません。その質問 は、以前WPSEで 答えられています。