Как вызвать внешний URL-адрес из компонента узла react express?

#node.js #reactjs #jwt #keycloak

#node.js #reactjs #jwt #keycloak

Вопрос:

Я пытаюсь создать приложение для входа в систему, которое передает JWT в заголовках другого приложения.

Я запустил с этого приложения аутентификацию пользователя keycloak 2, адаптированную к моей установке Kecloak, и она работает нормально. Теперь мне нужно создать компонент, который вызывает внешний URL-адрес, передавая токен авторизации

В этом компоненте

 import React, { Component } from 'react';

class callUrl1 extends Component {

  constructor(props) {
    super(props);
    this.state = { response: null };
  }

  authorizationHeader() {
    if(!this.props.keycloak) return {};
    return {
      headers: {
        "Authorization": "Bearer "   this.props.keycloak.token
      }
    };
  }

  handleClick = () => {
    console.log("callUrl1 called")
  }

}

export default callUrl1;
  

Мне нужно что-то, что вызывает внешний URL-адрес; что-то вроде:

 SOME_FUNCTION('https://www.h.net/users', this.authorizationHeader())
  

чтобы поместить внутри handleClick.

Все, что я пробовал, выдает ошибки компиляции.

Как я могу перейти от «http://localhost:3000 » чтобы «https://www.h.net/users » прохождение JWT?

Ответ №1:

Встроенная библиотека для выполнения запросов во интерфейсном JS называется Fetch . Вот пример того, как вы могли бы это сделать в вашем случае:

 handleClick = () => {
  fetch('https://www.h.net/users', this.authorizationHeader())
    .then((response) => {
       // do something with the response here...
    });
}
  

или с помощью async / await:

 handleClick = async () => {
  const response = await fetch('https://www.h.net/users', this.authorizationHeader());
  // do something with response like:
  const data = await response.json();
}
  

Для получения дополнительной информации о выборке ознакомьтесь с mdn: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

Комментарии:

1. Извините, я не понял. Я хочу перейти на внешнюю страницу, а не для извлечения страницы и рендеринга в приложении узла. Что-то вроде создания в интерфейсном приложении ссылки на внешнюю страницу, которая также содержит токен авторизации, который пользователь должен щелкнуть.