私はログインフォームを持っており、WordpressへのログインにはREST APIサービスを使用しています。私はフォームを使ってwordpressにログインすることができます。しかし、一部のユーザーにとって、wp_set_auth_cookie()関数は機能しません。私は502の不正なゲートウェイを取得しています。誰かがこれを整理するために私を助けることができますか?一部のユーザのみwp_set_auth_cookie()が動作しない
これは私のログインエンドポイント機能
function user_authentication() {
global $wp_rest_auth_cookie;
if(strcasecmp($_SERVER['REQUEST_METHOD'], 'POST') != 0){
throw new Exception('Request method must be POST!');
}
$contentType = isset($_SERVER["CONTENT_TYPE"]) ? trim($_SERVER["CONTENT_TYPE"]) : '';
if(strcasecmp($contentType, 'application/json') != 0){
throw new Exception('Content type must be: application/json');
}
$content = trim(file_get_contents("php://input"));
$decoded = json_decode($content, true);
if(!is_array($decoded)){
throw new Exception('Received content contained invalid JSON!');
}
$user_data['user_login'] = $decoded['username'];
$user_data['user_password'] = $decoded['password'];
$user_data['remember'] = false;
$user = wp_signon($user_data, false);
if (!is_wp_error($user)) {
wp_clear_auth_cookie();
wp_set_current_user ($user->ID);
wp_set_auth_cookie ($user->ID);
$wp_rest_auth_cookie = wp_create_nonce('wp-rest') ;
$token = encrypt_decrypt('encrypt',$user->ID);
$name = get_name($user->ID);
$response = array(
'status'=> 'success',
'token' => $token,
'username' => $name,
'uname' => $user->ID
);
return json_encode($response);
}else{
$response = array(
'status' => 'fail',
'message'=> "The username and password you entered don't match."
);
return json_encode($response);
}
die();
}