#javascript #authentication #session #fetch #session-cookies
#язык JavaScript #идентификация #сессия #извлечь #сеансовые файлы cookie
Вопрос:
У меня есть два URL-адреса. Первый из них предназначен для запроса на вход в систему, а второй URL-адрес предназначен для вызова json. Я не могу получить файл json по URL-адресу, если я не вошел в систему. Как я могу создать сеанс, чтобы я мог выполнить более одного запроса на публикацию, или, в качестве альтернативы, как я могу использовать JWT или set-cookie для аутентификации?
const fetch = (...args) =gt; import('node-fetch').then(({default: fetch}) =gt; fetch(...args)); const login_url = "https://www.example.com/login" const json_url = "https://www.example.com/users/anastasia" const data = {"username": "my_username", "password": "my_password"} const otherParm = { headers:{"content-type": 'application/json'}, body:JSON.stringify(data), method:"POST" }; fetch(login_url, otherParm) //.then(data=gt;{return data.json()}) .then(res=gt;{ console.log(res.headers.get('jwt')) }) .catch(err=gt;console.log(err))
Ответ: distinct_id: 156841653654e68w, jwt: e1616er5hw16e35hw6e5h6eth
fetch(json_url).then(function (response) { return response.json(); }).then(function (obt) { console.log(obt); }).catch(function(error) { console.error('something went wrong with retrieving the json file'); console.error(error); });
Ответ: 401 Несанкционированный
Комментарии:
1. После того, как вы получите свой JWT, включите его в заголовки вашего второго вызова. Что-то вроде
{"Authorization" : "Bearer " jwt }
. Обратитесь к документации используемого вами API.2. Спасибо @JeremyThille! Очевидно, я не могу использовать jwt для повторной аутентификации на этом веб-сайте. Я мог бы пойти на сеансы. Мое предположение основано на следующем : если я выполню ту же процедуру в браузере, я увижу, что запрос post не использует jwt для аутентификации. Можно ли создать сеанс?