Login mit Admin Admin login bis zum Dashboard
erfolgreich
This commit is contained in:
@@ -2,7 +2,8 @@ import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom';
|
||||
//import AdminDashboard from './components/AdminDashboard';
|
||||
import LoginForm from './components/LoginForm';
|
||||
//import RegisterForm from './components/RegisterForm';
|
||||
import Home from './components/Home';
|
||||
import Md5Tool from './components/Md5Tool';
|
||||
import ToolOverview from './components/ToolOverview';
|
||||
|
||||
function App() {
|
||||
const isLoggedIn = localStorage.getItem('token') !== null;
|
||||
@@ -11,12 +12,11 @@ function App() {
|
||||
return (
|
||||
<BrowserRouter>
|
||||
<Routes>
|
||||
<Route path="/" element={isLoggedIn ? <ToolsOverview /> : <Navigate to="/login" />} />
|
||||
<Route path="/" element={isLoggedIn ? <ToolOverview /> : <Navigate to="/login" />} />
|
||||
<Route path="/login" element={<LoginForm />} />
|
||||
{/*<Route path="/register" element={<RegisterForm />} />*/}
|
||||
<Route path="/tools/md5" element={isLoggedIn ? <Md5Tool /> : <Navigate to="/login" />} />
|
||||
{/*<Route path="/admin" element={isLoggedIn && role === 'admin' ? <AdminDashboard /> : <Navigate to="/" />} />*/}
|
||||
<Route path="/" element={<Home />} />
|
||||
</Routes>
|
||||
</BrowserRouter>
|
||||
);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// src/components/LoginForm.jsx
|
||||
import { useState } from 'react';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import axios from '../services/api';
|
||||
@@ -10,7 +9,7 @@ function LoginForm() {
|
||||
|
||||
const login = async () => {
|
||||
try {
|
||||
const res = await axios.post('/login', { username, password });
|
||||
const res = await axios.post('/login', { username, password }); // ruft POST /api/login auf
|
||||
localStorage.setItem('token', res.data.token);
|
||||
localStorage.setItem('role', res.data.role);
|
||||
navigate('/');
|
||||
@@ -22,8 +21,17 @@ function LoginForm() {
|
||||
return (
|
||||
<div>
|
||||
<h2>Login</h2>
|
||||
<input value={username} onChange={e => setUsername(e.target.value)} placeholder="Benutzername" />
|
||||
<input type="password" value={password} onChange={e => setPassword(e.target.value)} placeholder="Passwort" />
|
||||
<input
|
||||
value={username}
|
||||
onChange={e => setUsername(e.target.value)}
|
||||
placeholder="Benutzername"
|
||||
/>
|
||||
<input
|
||||
type="password"
|
||||
value={password}
|
||||
onChange={e => setPassword(e.target.value)}
|
||||
placeholder="Passwort"
|
||||
/>
|
||||
<button onClick={login}>Anmelden</button>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import axios from 'axios';
|
||||
|
||||
const instance = axios.create({
|
||||
baseURL: import.meta.env.VITE_API_URL || 'http://localhost:5000/api',
|
||||
baseURL: import.meta.env.VITE_API_URL || 'http://127.0.0.1:5000/api',
|
||||
});
|
||||
|
||||
instance.interceptors.request.use(config => {
|
||||
const token = localStorage.getItem('token');
|
||||
if (token) config.headers.Authorization = `Bearer ${token}`;
|
||||
if (token) {
|
||||
config.headers.Authorization = `Bearer ${token}`;
|
||||
}
|
||||
return config;
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user