確認なしでログアウトする方法 '本当にログアウトしますか? "?
4 回答
- 投票
-
- 2012-10-06
これは、
でチェックされているURLに必要なナンスがないために発生します.wp-login.php
case 'logout' : check_admin_referer('log-out'); ...
ナンスを含むURLを取得するには、
wp_logout_url
を使用します.カスタムURLにリダイレクトする場合は、引数として渡すだけです.<a href="<?php echo wp_logout_url('/redirect/url/goes/here') ?>">Log out</a>
翻訳を含むリンクを生成する
wp_loginout
を使用することもできます:echo wp_loginout('/redirect/url/goes/here')
This happens because you are missing the neccessary nonce in the URL, which is being checked in
wp-login.php
case 'logout' : check_admin_referer('log-out'); ...
Use
wp_logout_url
in order to retreive the URL including the nonce. If you want to redirect to a custom URL, simply pass it as an argument.<a href="<?php echo wp_logout_url('/redirect/url/goes/here') ?>">Log out</a>
You could also use
wp_loginout
which generates the link for you including translation:echo wp_loginout('/redirect/url/goes/here')
-
echo wp_loginout( '/redirect/url/goings/here')は正常に機能しています.echo wp_loginout('/redirect/url/goes/here') is working fine..
- 1
- 2015-10-30
- Mayur Devmurari
-
`wp_logout_url(get_permalink())`を使用していますが、確認ページがバイパスされません.ナンスはURLの一部として生成されますが、それでも確認ページに送信されますI'm using `wp_logout_url( get_permalink())` and the confirmation page is not bypassed. The nonce is generated as part of the URL but I am still sent to the confirmation page
- 1
- 2018-12-17
- Ralphonz
-
ここで同じ問題:(Same issue here :(
- 0
- 2019-04-14
- Jarmerson
-
ありがとう.エコーwp_logout_url();thanks. worked me that echo wp_logout_url();
- 0
- 2020-05-26
- Erhan Demirci
-
- 2016-04-04
wp_logout_url()
関数を使用できない場合は、次のコードを使用してこの検証をオフにできます.add_action('check_admin_referer', 'logout_without_confirm', 10, 2); function logout_without_confirm($action, $result) { /** * Allow logout without confirmation */ if ($action == "log-out" && !isset($_GET['_wpnonce'])) { $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : 'url-you-want-to-redirect'; $location = str_replace('&', '&', wp_logout_url($redirect_to)); header("Location: $location"); die; } }
'url-you-want-to-redirect'
をログアウト後にリダイレクトするURLに置き換えます.functions.php
If you can't use
wp_logout_url()
function, You can turn off this validation using this code:add_action('check_admin_referer', 'logout_without_confirm', 10, 2); function logout_without_confirm($action, $result) { /** * Allow logout without confirmation */ if ($action == "log-out" && !isset($_GET['_wpnonce'])) { $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : 'url-you-want-to-redirect'; $location = str_replace('&', '&', wp_logout_url($redirect_to)); header("Location: $location"); die; } }
Replace
'url-you-want-to-redirect'
with the URL you want to redirect after logout.Add it in your
functions.php
-
これは検証なしでログアウトするために機能しますが、必要なURLにリダイレクトされません.This works for logging out without validation, but it doesn't redirect to the url I want.
- 0
- 2017-06-29
- Phu Nguyen
-
@PhuNguyenコロンの後に引用符が付いているコードで、リダイレクトURLをリダイレクトリクエストに追加する必要があります.@PhuNguyen You just need to add the redirect URL to the redirect request in that code where there is ' ' quotes, after the colon.
- 0
- 2017-12-17
- NJENGAH
-
この検証を削除することでセキュリティに影響はありますか?are there any security implications for removing this validation?
- 0
- 2018-03-20
- rok
-
@ user1264304何らかの形でブラウザにロードされた悪意のあるJSがログインページにリダイレクトする可能性があると思いますが、それが行うのはユーザーをログアウトすることだけです.本当に悪意のあるコードは、おそらく有効なナンスの前にURLを置き換えようとします.ユーザーは別のサイトに移動でき、そのサイトには現在のサイトのログアウトページへのリンクがあります.他のサイトがユーザーに関係があることを認識していると仮定します.繰り返しますが、ユーザーをログアウトする以外の結果はありません.私はこれを見たことがありません.したがって、あなたの質問に答えるために、検証を削除することによるセキュリティ上の影響はないと思います.@user1264304 I believe malicious JS somehow loaded into the browser could do a redirect to the login page, but all it's going to do is logout the user. Truly malicious code would probably seek to replace the URL before a valid nonce. The user could navigate to another site which then has a link the current site's logout page - assuming the other site is aware that the user has a relationship. Again, no consequence other than logging out the user. I've never seen this. So to answer your question, I do Not think there is a security implication for removing the validation.
- 0
- 2018-05-04
- TonyG
-
エラー、リダイレクトが多すぎます...Err, Too Many Redirects...
- 0
- 2019-02-05
- Solomon Closson
-
特にログアウトページに追加のPHPを必要としないため、私にとって優れたソリューションです.私は単にこのリンクを使用します:wp-login.php?action=logout また、リダイレクトとして、home_url()を使用して、どのサイトでも機能するようにします.Excellent solution for me especially because it needs no extra php on my logout page. I simply use this link:wp-login.php?action=logout And as redirect, I use home_url() so it works on any site.
- 0
- 2020-08-28
- Ralf
-
- 2019-03-04
メニューでカスタムリンクを作成する場合は、ラベルを
“Logout”
に設定し、URLをhttp://yourdomain.com/wp-login.php?action=logout
.次に、この関数をfunctions.php
ファイルに追加します.function change_menu($items){ foreach($items as $item){ if( $item->title == "Logout"){ $item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ); } } return $items; } add_filter('wp_nav_menu_objects', 'change_menu');
ログアウト後にログインページにリダイレクトする場合は、ログインURLを次のように追加する必要があります.
$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ).'&redirect_to='.wp_login_url();
**はうまくいきませんでした.本当にページをログアウトしたいのですが、ボタンをクリックすると4つの問題が発生しました.
If you create a custom link in your menu, set the label to
“Logout”
, and set the URL tohttp://yourdomain.com/wp-login.php?action=logout
. Then add this function to yourfunctions.php
file:function change_menu($items){ foreach($items as $item){ if( $item->title == "Logout"){ $item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ); } } return $items; } add_filter('wp_nav_menu_objects', 'change_menu');
If you want to redirect to the login page after logout then you should append login URL as:
$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ).'&redirect_to='.wp_login_url();
** tried that did not work. Really want to log out page then 4 something went wrong when clicking the button.
-
- 2019-08-01
これは、最後に
/?customer-logout=true
を追加することでうまくいきました.http://www.website.com/?customer-logout=true
This worked for me by adding
/?customer-logout=true
at the end.http://www.website.com/?customer-logout=true
今、次の方法でログアウトします:
ログアウトを確認する必要があるページにリダイレクトされます.
ログアウト後に確認を削除してホームページにリダイレクトするにはどうすればよいですか?