使用自定义AJAX登录时可以进入wp-admin

时间:2017-06-12 作者:Abuzer Killibacak

我使用自定义ajax登录了我的站点。然后尝试连接我的wp管理员,页面会将我重定向到登录。php

php中的自定义ajax函数;

function ajax_login(){
check_ajax_referer( \'ajax-login-nonce\', \'security\' );
$info = array();
$info[\'user_login\'] = $_POST[\'username\'];
$info[\'user_password\'] = $_POST[\'password\'];
$info[\'remember\'] = true;
if((trim($info[\'user_login\']) == "" || $info[\'user_password\'] == "" || strlen(trim($info[\'user_login\'])) < 3 || strlen($info[\'user_password\']) < 6 )){
    echo json_encode(array(\'loggedin\'=>false, \'message\'=>__(\'Error\')));
}else{
  $user_signon = wp_signon( $info, false );
  if ( is_wp_error($user_signon) ){
      echo json_encode(array(\'loggedin\'=>false, \'message\'=>__(\'Error\')));
  } else {
      wp_set_current_user($user_signon->ID);
      echo json_encode(array(\'loggedin\'=>true, \'message\'=>__(\'Error\')));
  }
}
  die();
}


  function ajax_auth_init(){
  add_action( \'wp_ajax_nopriv_ajaxlogin\', \'ajax_login\' );
  }

 if (!is_user_logged_in()) {
 add_action(\'init\', \'ajax_auth_init\');
 }
为什么我不能直接连接到wp管理员?

1 个回复
SO网友:Abuzer Killibacak

我明白了。只是我需要改变

$user_signon = wp_signon( $info, false );
使用

$user_signon = wp_signon( $info, is_ssl() ? true : false );

结束

相关推荐

什么可能导致对wp-admin/async-pload.php的POST返回JSON>和<Html?

在“媒体”选项卡中,上载有效的图像文件会显示“HTTP错误”。不过,重新加载“媒体”选项卡显示图像确实上载并调整了大小。浏览器调试工具显示,在上载时,浏览器正在向wp admin/async upload发送帖子。php。服务器响应500错误。不过,回应的主体是可疑的。第一部分是JSON结构。JSON结构后面紧跟着一个标题为“Wordpress Error”但正文为空的HTML文档。进入webserver(apache)错误日志和WP调试模式以及增加的PHP错误/警告详细程度都没有帮助。禁用所有插件对错误