bolt.new/app/hooks/useAuth.ts

26 lines
621 B
TypeScript

import { useState, useEffect } from 'react';
import { useNavigate } from '@remix-run/react';
export function useAuth() {
const [isAuthenticated, setIsAuthenticated] = useState(false);
const navigate = useNavigate();
useEffect(() => {
const token = localStorage.getItem('token');
setIsAuthenticated(!!token);
}, []);
const login = (token: string) => {
localStorage.setItem('token', token);
setIsAuthenticated(true);
};
const logout = () => {
localStorage.removeItem('token');
setIsAuthenticated(false);
navigate('/login');
};
return { isAuthenticated, login, logout };
}