gpt4 book ai didi

javascript - Wordpress Ajax 登录系统出现问题 - 302

转载 作者:行者123 更新时间:2023-11-28 07:12:16 25 4
gpt4 key购买 nike

我正在尝试使用 Wordpress 创建一个简单的 Ajax 登录系统。不幸的是,每次“wp_signon”函数被触发时,我的系统都会失败,我拥有的唯一信息就是这个:

POST myurl/wp-admin/admin-ajax.php - 302 Found
GET myurl/?login = failed - 200 Found

因此,无论我是否尝试使用正确信息登录,我的 JS 脚本都会进入我的 Ajax 函数的“错误部分”。

谁能告诉我我做错了什么?我们将不胜感激!

非常感谢!

JS:

jQuery(document).on('submit', loginForm, function(event) {

event.preventDefault();

var usernameVal = jQuery('.modal-login .login-form #user_login').val();
var passwordVal = jQuery('.modal-login .login-form #user_pass').val();
var remembermeField = jQuery('.modal-login .login-form #rememberme');
var securityVal = jQuery('.modal-login .login-form #security').val();

if ( remembermeField.prop('checked') ) {
var remembermeVal = 'true';
} else {
var remembermeVal = 'false';
}

jQuery.ajax({
type : "post",
url : data_front_end_users_management.ajaxurl,
dataType: 'json',
data: {
action: 'AuthUserAjax',
username: usernameVal,
password: passwordVal,
rememberme: remembermeVal,
security: securityVal
},
success: function(data) {

if ( data['answer'] === 1 ) {

modalAlert( msgRow, msgAlert, msgContent, false, 'alert-success', 'alert-danger', data['message'] );


} else {

modalAlert( msgRow, msgAlert, msgContent, false, 'alert-danger', 'alert-success', data['message'] );

}

//END success
},
error: function () {

modalAlert( msgRow, msgAlert, msgContent, false, 'alert-danger', 'alert-success', defaultError );

}

//END ajax
});

//END jQuery(document).on('submit', loginForm, function(event)
});

行动:

function AuthUserAjax() {

$LoginController = new FELoginController();

$value = array();
$value['answer'] = 0;
$value['message'] = '';

$username = trim($_POST['username']);
$password = trim($_POST['password']);
$rememberme = $_POST['rememberme'];
$security = $_POST['security'];

if ( $LoginController->checkAuthInfosFilled( $username, $password ) ) {

$user = $LoginController->UserAuth( $username, $password, $rememberme );

if ( $user ) {

if ( is_wp_error( $user ) ) {

$value['answer'] = 0;
$value['message'] = $user->get_error_message();

} else {

$value['answer'] = 1;
$value['message'] = 'Success.';

}

//END if ( $user )
} else {

$value['answer'] = 0;
$value['message'] = 'Wrong username or password.';

}

} else {

$value['answer'] = 0;
$value['message'] = 'Please, enter your username and your password.';

}

$data = json_encode($value);

die( $data );

//END AuthUserAjax
}

add_action( 'wp_ajax_AuthUserAjax','AuthUserAjax' );
add_action( 'wp_ajax_nopriv_AuthUserAjax','AuthUserAjax' );

Controller :

public function UserAuth( $username, $password, $rememberme ) {

if ( check_ajax_referer( 'ajax-login-nonce', 'security' ) ) {

$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;

if ( $rememberme == 'true' || $rememberme == true ) {
$creds['remember'] = true;
} else {
$creds['remember'] = false;
}

$user = wp_signon( $creds, false );

return $user;

} else {

return false;

}

//END UserAuth
}

最佳答案

所以,经过几个小时的搜索,我终于找到了问题所在:我的类中的另一个方法干扰了我的 ajax 身份验证系统。

关于javascript - Wordpress Ajax 登录系统出现问题 - 302,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31177252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com