Я хочу создать объект и отправить токен 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."));
}
?>
Правильно ли я добавляю заголовки? Нужно ли что-то менять в настройках заголовка?