Я пытаюсь делать авторизованные запросы к API LinkedIn после использования OAuth2.0 для входа пользователей. Я продолжаю получать сообщения об ошибках политики CORS и нуждаюсь в помощи при отправке правильных заголовков, чтобы эти ошибки больше не возникали.
Я пытался включить пару разных заголовков 'Access-Control-Request', но я продолжаю получать ту же ошибку. Я почти уверен, что это как-то связано с заголовком «Авторизация», который я отправляю в API, но этот заголовок требуется из документации для получения правильной информации.
https://docs.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow?context=linkedin/context#step-1-configure-your-application
Код, который я использую для этого звонка, показан ниже ...
async function getProfileData(accessToken, expiresIn) {
const requestUrl = `https://api.linkedin.com/v2/me`;
const response = await fetch(requestUrl, {
method: 'GET',
headers: {
'Host': 'api.linkedin.com',
'Connection': 'Keep-Alive',
'Authorization': `Bearer ${accessToken}`,
'Origin': REDIRECT_URI,
'Access-Control-Request-Method': 'GET',
'Access-Control-Request-Headers': 'Content-Type, Authorization'
}
});
return response;
}
accessToken в данном случае поступает из предыдущего сетевого вызова с использованием кода авторизации из предыдущего шага. Все до этого работает, и я получаю ответ с тем, что я считаю допустимым токеном доступа.
Раньше я получал сообщение о том, что мой токен доступа недействителен, хотя я шаг за шагом следил за документацией, чтобы получить его. Я не уверен, является ли это той же проблемой или нет, но я не вижу причины, по которой у меня был бы недействительный токен (токен не истек, и я никогда не отклонял разрешения на вход в систему).
Ответ, который я ожидаю получить от вызова, - это базовые данные профиля пользователя, который вошел в систему, но вместо этого я получаю следующее:
OPTIONS https://api.linkedin.com/v2/me 401
getProfileData @ app.js:74
(anonymous) @ app.js:50
Access to fetch at 'https://api.linkedin.com/v2/me' from origin 'https://simple-linkedin-login2.netlify.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.