Авторизация JWT через заголовки выдает ошибку CORS - PullRequest
0 голосов
/ 28 января 2020

Я хочу создать объект и отправить токен JWT через заголовки. Он отлично работает, если я пропущу авторизацию. Однако после включения ограничения доступа я получаю сообщение об ошибке CORS или сообщение «Отказано в доступе».

вызов API

  editMediaObject(data): Observable<any> {
    var url = `${ApiServerUrl}/edit_mo`;
    url = encodeURI(url);
    var headers = {
      "Content-Type": "application/x-www-form-urlencoded", 
      "Authorization": "..."  // Just the token, hardcoded for testing
      }
    return from(this.httpAdvanced.post(url, data, headers)).pipe(map(res => res.data));
  }

edit_mo. php

    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
    header("Access-Control-Allow-Methods: POST, OPTIONS, GET");
    header("Access-Control-Max-Age: 3600");
    header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

    include_once '../users/validate_token.php';

    if ($validate_check) {

validate_token. php

header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

include_once '../config/core.php';
include_once '../libs/php-jwt-master/src/BeforeValidException.php';
include_once '../libs/php-jwt-master/src/ExpiredException.php';
include_once '../libs/php-jwt-master/src/SignatureInvalidException.php';
include_once '../libs/php-jwt-master/src/JWT.php';
use \Firebase\JWT\JWT;

$headers = apache_request_headers();
if (isset($headers['Authorization'])) {
    $jwt = $headers['Authorization'];
} else {
    $jwt = "";
}

if($jwt){

    try {
        $decoded = JWT::decode($jwt, $key, array('HS256'));
        http_response_code(200);    
        $validate_check = TRUE;     
    }

 catch (Exception $e){

    http_response_code(401);
    echo json_encode(array(
        "message" => "Access denied.",
        "error" => $e->getMessage()
    ));
    $validate_check = FALSE;
}
}

else{

    $validate_check = FALSE;

    // set response code
    http_response_code(401);

    // tell the user access denied
    echo json_encode(array("message" => "Access denied."));
}
?>

Правильно ли я добавляю заголовки? Нужно ли что-то менять в настройках заголовка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...