iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0

咒語:使用localstorge 在登入的時候 存取一個假token 記入使用帳號的ID 並且導向首頁

const handleLogin = async () => {
  try {
    const response = await fetch('http://localhost:3310/users', {
      method: 'GET',
    });

    if (response.status === 200) {
      const data = await response.json();
      const matchingUser = data.find((user) => user.email === email && user.password === password);

      if (matchingUser) {
        // 登入成功,獲取用戶的 ID
        const userId = matchingUser.id;

        // 將用戶的 ID 存儲到 localStorage 中,這裡假設 key 為 "token"
        localStorage.setItem('token', userId.toString());

        // 使用 useHistory 來導航到首頁
        const history = useHistory();
        history.push('/');

        alert('登入成功');
        // 可以在這裡執行登入後的操作
      } else {
        alert('登入失敗,請檢查帳號和密碼');
      }
    } else {
      alert('登入時出錯誤');
    }
  } catch (error) {
    console.error('登入時出錯:', error);
  }
};

const handleLogin = async () => {
  try {
    const response = await fetch('http://localhost:3310/users', {
      method: 'GET',
    });

    if (response.status === 200) {
      const data = await response.json();
      const matchingUser = data.find((user) => user.email === email && user.password === password);

      if (matchingUser) {
        // 登入成功,獲取用戶的 ID
        const userId = matchingUser.id;

        // 將用戶的 ID 存儲到 localStorage 中,這裡假設 key 為 "token"
        localStorage.setItem('token', userId.toString());

        // 使用 useHistory 來導航到首頁
        const history = useHistory();
        history.push('/');

        alert('登入成功');
        // 可以在這裡執行登入後的操作
      } else {
        alert('登入失敗,請檢查帳號和密碼');
      }
    } else {
      alert('登入時出錯誤');
    }
  } catch (error) {
    console.error('登入時出錯:', error);
  }
};

發現報錯了 仔細看了一下
新的導向好像不叫useHistory
更新咒語: 新的導向好像不叫useHistory

import { useNavigate } from 'react-router-dom';

const Login = () => {
   const navigate = useNavigate();

並且更改登入邏輯

const navigate = useNavigate();
navigate('/');

看起來還是有哪裡怪怪的
把APP links的code 複製下來更新需求

咒語:(


首頁


登入


商品介紹


購物車


根據localStorage的資訊 請幫我加上一個會員的link 大於0時會員連接出現 登入註冊連結消失 小於0或沒這個key值反之)

  <NavLinks>
      <ul>
        <li>
          <Link to="/">首頁</Link>
        </li>
        {token ? (
          // 如果 "token" 存在(用戶已登入),顯示會員連結
          <li>
            <Link to="/member">會員</Link>
          </li>
        ) : (
          // 如果 "token" 不存在(用戶未登入),顯示登入連結
          <li>
            <Link to="/login">登入</Link>
          </li>
        )}
        <li>
          <Link to="/product">商品介紹</Link>
        </li>
        <li>
          <Link to="/cart">購物車</Link>
        </li>
      </ul>
    </NavLinks>

就可以得到 登入過後 跳轉首頁的效果了


上一篇
[Day8]註冊邏輯 邏輯滑倒
下一篇
[Day10] 註冊事件 更新sever
系列文
I have an AI ,I have a React, Ugh ,AI -React 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言