export async function getLogin(req, res) {
const { id, pass } = req.body;
const result = await memberRepository.getLogin(id);
result.login_result = false ;
let token = null;
if (result.cnt === 1) {
if (await bcrypt.compare(pass, result.pass)) {
result.login_result = true // 로그인 성공
// jwt 토큰 생성
token = jwt.sign({id : id},'I50f?FzL04`2L');
result.token = token
console.log(`result ----> ${(result)}`);
}
}
//console.log(result);
// res.json({result,token}) // 토큰 전송
res.json(result) // 토큰 전송
};

import { Cookies } from "react-cookie";
const cookies = new Cookies();
export const setCookie = (name, value, option) => {
return cookies.set(name, value, option);
} //쿠키 생성
export const getCookie = (name) => {
return cookies.get(name)
} // 쿠키를 가져옴
export const removeCookie = () => {
} // 쿠키 삭제
import { setCookie } from '../util/cookie';
import { jwtDecode } from 'jwt-decode';
if (result.data.login_result) {
console.log(result.data.token);
alert('로그인 성공')
//토큰을 쿠키에 추가
setCookie("x-auth-jwt",result.data.token)
//토큰에 추가된 id 추출(토큰디코딩 : jwt-decode)후 로컬스토리지에 저장
const userInfo = jwtDecode(result.data.token);
localStorage.setItem("userInfo" , JSON.stringify(userInfo))
navigate("/")
}
import { getCookie, removeCookie } from "./cookie";
export const getUser = () => {
let userInfo = localStorage.getItem('userInfo') && getCookie('x-auth-jwt')
? JSON.parse(localStorage.getItem('userInfo'))
: null
return userInfo
}
export const removeUser = () => {
}
다른 파일에서 사용하는법은 import { getUser } from "../util/localStorage";
임포트 후
{getUser() ?
<>
<Link to='/products'>Products</Link>
<Link to='/carts'>Cart</Link>
<Link to='/products/new'><BsFillPencilFill />NewProducts</Link>
<button type="button">Logout</button>
</>
:
<>
<Link to='/products'>Products</Link>
<Link to='/login'><button>Logint</button></Link>
</>
}
const handleLogout = ()=>{
removeUser();
navigate(`/`);
}
export const removeUser = () => {
removeCookie('x-auth-jwt');
localStorage.clear();
}
👍와따여