source: my-react-app/src/components/Login.js@ b78c0c1

main
Last change on this file since b78c0c1 was 303f51d, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

RetaurantServiceImpl problemi
isAvailable od tableEntity...

  • Property mode set to 100644
File size: 1.8 KB
RevLine 
[303f51d]1// Login.js
2import React, { useState } from 'react';
3import axios from 'axios';
4import {useNavigate} from "react-router-dom";
[a3d63eb]5
[303f51d]6const Login = ({ onLogin }) => {
[a3d63eb]7 const navigate = useNavigate();
[303f51d]8 const [credentials, setCredentials] = useState({ username: '', password: '' });
[a3d63eb]9
[303f51d]10 const handleChange = (e) => {
11 const { name, value } = e.target;
12 setCredentials({ ...credentials, [name]: value });
13 };
14
15 const handleSubmit = async (e) => {
16 e.preventDefault();
17 try {
18 const response = await axios.post('http://localhost:8080/api/login', {
19 email: credentials.username,
20 password: credentials.password
21 });
22 const { token } = response.data;
23 // Store token securely (e.g., using HTTP cookies)
24 localStorage.setItem('token', token);
[a3d63eb]25
[303f51d]26 navigate("/")
27 } catch (error) {
28 // Handle login failure
29 console.error('Login failed:', error);
30 }
31 };
[a3d63eb]32
33
34 return (
35 <div>
[303f51d]36 <h2>Login</h2>
37 <form onSubmit={handleSubmit}>
38 <div>
39 <label>Username:</label>
40 <input
41 type="text"
42 name="username"
43 value={credentials.username}
44 onChange={handleChange}
45 />
[a3d63eb]46 </div>
[303f51d]47 <div>
48 <label>Password:</label>
49 <input
50 type="password"
51 name="password"
52 value={credentials.password}
53 onChange={handleChange}
54 />
[a3d63eb]55 </div>
[303f51d]56 <button type="submit">Login</button>
[a3d63eb]57 </form>
58 </div>
[303f51d]59 );
60};
[a3d63eb]61
[303f51d]62export default Login;
Note: See TracBrowser for help on using the repository browser.