Как создать сеанс аутентификации с помощью API выборки в JS

#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 для аутентификации. Можно ли создать сеанс?