import React, {createContext, useState} from 'react'; import {Buffer} from 'buffer'; import {AsyncStorage} from '@react-native-async-storage/async-storage'; export const AuthContext = createContext(); export default function AuthProvider({children}) { const [userToken, setUserToken] = useState(null); const [userInfo, setUserInfo] = useState(null); const parseJWT = token => { return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString()); }; const onClickLogin = (userID, userPassword) => { fetch('http://192.168.0.138:8080/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8', }, body: JSON.stringify({ id: userID, password: userPassword, }), }) .then(response => response.json()) .then(data => { const { result, token } = data; if (result === 'success') { setUserToken(token); let userInfo = parseJWT(token); setUserInfo(userInfo); console.log("login 성공") console.log("userInfo",userInfo) } else { alert('로그인 정보를 다시 한 번 확인해주세요.'); } }) .catch(err => { console.error(err); }); }; const logout = () => { console.log('logout'); }; const value = React.useMemo(() => ({ onClickLogin, setUserInfo, userToken, userInfo })); return ( {children} ); }