You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.2 KiB

3 years ago
  1. import { useCallback } from "react";
  2. import logo from "./logo.svg";
  3. import "./App.css";
  4. function App({ keycloak }) {
  5. const callApi = useCallback(async () => {
  6. const response = await fetch("http://localhost:8081/api/userinfo", {
  7. headers: {
  8. Authorization: `Bearer ${keycloak.token}`,
  9. },
  10. });
  11. if (response.ok) {
  12. alert(`Response is: ${await response.text()}`);
  13. } else {
  14. console.error(response.statusText);
  15. }
  16. }, [keycloak.token]);
  17. return (
  18. <div className="App">
  19. <header className="App-header">
  20. <img src={logo} className="App-logo" alt="logo" />
  21. <p>
  22. Edit <code>src/App.js</code> and save to reload.
  23. </p>
  24. <span
  25. className="App-link"
  26. onClick={(e) => {
  27. e.preventDefault();
  28. callApi();
  29. }}
  30. >
  31. Call API
  32. </span>
  33. <br />
  34. <span
  35. className="App-link"
  36. onClick={(e) => {
  37. e.preventDefault();
  38. keycloak.logout({
  39. redirectUri: "http://localhost:3000",
  40. });
  41. }}
  42. >
  43. Logout
  44. </span>
  45. </header>
  46. </div>
  47. );
  48. }
  49. export default App;