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.

62 lines
1.4 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. import { useCallback } from "react";
  2. import logo from "./logo.svg";
  3. import "./App.css";
  4. function App({ keycloak }) {
  5. const fetchFromApi = useCallback(async (url) => {
  6. const response = await fetch(url, {
  7. headers: {
  8. Authorization: `Bearer ${keycloak.token}`,
  9. },
  10. });
  11. if (response.ok) {
  12. alert(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. fetchFromApi("http://localhost:8081/api/userinfo");
  29. }}
  30. >
  31. Get user email
  32. </span>
  33. <br />
  34. <span
  35. className="App-link"
  36. onClick={(e) => {
  37. e.preventDefault();
  38. fetchFromApi("http://localhost:8081/api/users");
  39. }}
  40. >
  41. Get all users
  42. </span>
  43. <br />
  44. <span
  45. className="App-link"
  46. onClick={(e) => {
  47. e.preventDefault();
  48. keycloak.logout({
  49. redirectUri: "http://localhost:3000",
  50. });
  51. }}
  52. >
  53. Logout
  54. </span>
  55. </header>
  56. </div>
  57. );
  58. }
  59. export default App;