Login.jsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import './css/Login.css'
  2. import Sidebar from './Components/Sidebar'
  3. import { useState, useEffect } from 'react'
  4. import Cookies from 'js-cookie'
  5. import banner from "/src/assets/banner.png"
  6. import { default as axios } from 'axios'
  7. import { config } from './main'
  8. function Login() {
  9. const handleSubmit = async (e) => {
  10. e.preventDefault();
  11. document.getElementById("submit").disabled = true;
  12. const formData = new FormData(e.target);
  13. let response = await axios.post(config.serverURL + "/account/token", {
  14. username: formData.get("username"),
  15. password: formData.get("password")
  16. })
  17. if(response.data.error) {
  18. document.getElementById("submit").disabled = false;
  19. return alert(`Login error: ${response.data.message}`);
  20. }
  21. Cookies.set("token", response.data.token);
  22. };
  23. return (
  24. <>
  25. <div className="main">
  26. <Sidebar />
  27. <div className="login-container">
  28. <form className="login" id="form" onSubmit={handleSubmit}>
  29. <img src={banner} width="300px"></img>
  30. <input type="text" placeholder="username" name="username"></input>
  31. <input type="password" placeholder="password" name="password"></input>
  32. <input type="submit" value="Log in/Sign up/Register/Enter Website" id="submit"></input>
  33. </form>
  34. </div>
  35. </div>
  36. </>
  37. )
  38. }
  39. export default Login