Closed bryceAM closed 1 year ago
api/users.js
router.get('/holder/:token', async (req, res, next) => { const { token } = req.params; try { const user = jwt.verify(token, JWT_SECRET); res.send(user) } catch (error) { console.error(error) } }) router.get('/fetch/:userName', async (req, res, next) => { const { userName } = req.params; try { const userObj = await User.getUserByUsername(userName); res.send(userObj); } catch (error) { console.error(error) } })
components/App.js
const fetchUser = async (storedToken) => { let userName; try { const userResponse = await fetch(`${DB}/api/users/holder/${storedToken}`, { headers: { 'Content-type': 'application/json', }, }); const userResult = await userResponse.json(); if (userResult) { userName = userResult.username; } } catch (error) { console.error(error) } try { const userObj = await fetch(`${DB}/api/users/fetch/${userName}`, { headers: { 'Content-type': 'application/json', }, }); const returnedUser = await userObj.json(); return returnedUser; } catch (error) { console.error(error); } }; // reload token on page refresh useEffect(() => { let storedToken = localStorage.getItem('token'); setToken(storedToken); const initUser = async () => { const fetchedUser = await fetchUser(storedToken); setUser(fetchedUser); } initUser(); }, []);
api/users.js
components/App.js