当前位置: 首页 > wzjs >正文

上饶便宜的做网站公司b站推广网站2024mmm

上饶便宜的做网站公司,b站推广网站2024mmm,自己电脑做网站服务器系统,网站 申请下面是一个用 React 实现 JWT 登录验证的最小可运行示例,包含: React 前端:登录、保存 Token、获取用户数据。模拟后端:用 mock API(你也可以接真后端)。 🧱 技术栈 React(使用 Vi…

下面是一个用 React 实现 JWT 登录验证的最小可运行示例,包含:

  • React 前端:登录、保存 Token、获取用户数据。
  • 模拟后端:用 mock API(你也可以接真后端)。

🧱 技术栈

  • React(使用 Vite)
  • axios 发送请求
  • localStorage 保存 JWT
  • 使用一个假的后端 API(模拟 JWT 认证)

🚀 最终效果

  1. 用户输入用户名和密码登录;
  2. 服务器返回 JWT;
  3. 前端保存 JWT;
  4. 访问受保护的用户信息页时,携带 JWT 请求头访问。

🛠️ 第一步:初始化项目

npm create vite@latest jwt-demo -- --template react
cd jwt-demo
npm install
npm install axios

在这里插入图片描述


📁 目录结构

src/
├─ App.jsx
├─ pages/
│  ├─ Login.jsx
│  └─ Profile.jsx
├─ api.js
└─ main.jsx

✏️ 第二步:代码实现

🔹 src/api.js(模拟 API)

import axios from 'axios';const mockToken = "fake-jwt-token-123456";export async function login(username, password) {if (username === 'admin' && password === '123456') {return { token: mockToken };} else {throw new Error('登录失败');}
}export async function getProfile(token) {if (token === mockToken) {return { username: 'admin', email: 'admin@example.com' };} else {throw new Error('无效Token');}
}

🔹 src/pages/Login.jsx

import { useState } from 'react';
import { login } from '../api';export default function Login({ onLogin }) {const [username, setUsername] = useState('');const [password, setPassword] = useState('');const [error, setError] = useState('');const handleLogin = async () => {try {const res = await login(username, password);localStorage.setItem('token', res.token);onLogin();} catch (e) {setError('用户名或密码错误');}};return (<div><h2>登录</h2><input placeholder="用户名" value={username} onChange={e => setUsername(e.target.value)} /><br /><input type="password" placeholder="密码" value={password} onChange={e => setPassword(e.target.value)} /><br /><button onClick={handleLogin}>登录</button>{error && <p style={{ color: 'red' }}>{error}</p>}</div>);
}

🔹 src/pages/Profile.jsx

import { useEffect, useState } from 'react';
import { getProfile } from '../api';export default function Profile() {const [profile, setProfile] = useState(null);const [error, setError] = useState('');useEffect(() => {const token = localStorage.getItem('token');getProfile(token).then(data => setProfile(data)).catch(err => setError('认证失败,请重新登录'));}, []);if (error) return <p>{error}</p>;if (!profile) return <p>加载中...</p>;return (<div><h2>用户信息</h2><p>用户名: {profile.username}</p><p>邮箱: {profile.email}</p></div>);
}

🔹 src/App.jsx

import { useState } from 'react';
import Login from './pages/Login';
import Profile from './pages/Profile';export default function App() {const [isLoggedIn, setIsLoggedIn] = useState(!!localStorage.getItem('token'));const handleLogout = () => {localStorage.removeItem('token');setIsLoggedIn(false);};return (<div>{isLoggedIn ? (<><Profile /><button onClick={handleLogout}>退出登录</button></>) : (<Login onLogin={() => setIsLoggedIn(true)} />)}</div>);
}

✅ 运行

npm run dev

在这里插入图片描述

访问 http://localhost:5173,输入:

  • 用户名:admin
  • 密码:123456

然后你将登录并看到用户信息页,JWT 被保存在 localStorage


后面重启后就不用再输入密码了
在这里插入图片描述

http://www.dtcms.com/wzjs/424935.html

相关文章:

  • 无锡商业网站建设百度招聘官网
  • 浙江网站建设公司电话东莞网
  • 南京英文网站建设百度seo优化收费标准
  • 人和马做的网站太原网站建设谁家好
  • 大型网站设计公司做网站设计的公司
  • 做书封面的模板下载网站免费拓客软件排行榜
  • PHP动态网站开发期末考试怎么做网络推广最有效
  • 网页设计工作目标杭州seo百度关键词排名推广
  • web项目网站开发流程怎么写长沙做网站的公司有哪些
  • 那个公司做网站营销策划书模板范文
  • 服装公司做哪个网站小果seo实战培训课程
  • 中网-西安网站建设公司天津百度网站排名优化
  • php投资理财企业网站模板手游推广去哪里找客源
  • 资源网站怎么做网站开发
  • 企业手机网站案例武汉seo网络优化公司
  • 苍南做网站哪里找百度推广外推联系方式
  • 网络技术与网站建设关键词优化是什么意思
  • 网站 刷流量 SEO免费域名申请网站大全
  • 福建省人民政府文件大连seo顾问
  • 网站的链接结构包括常用的关键词挖掘工具
  • 为什么网站要用外链seo网站运营
  • wordpress网站实例全网搜索软件下载
  • 福田网站建设哪家好百度人工服务热线电话
  • 大连网站建设价格低简述网站内容如何优化
  • 网站建设实训的意义b站推广网站2023
  • 和国外做贸易用什么网站免费的网站推广方法
  • wordpress运行环境手机关键词seo排名优化
  • 水利部网站建设管理司重庆seo公司怎么样
  • 贵州省冶金建设有限公司网站免费发布友链
  • 制作一个自适应网站品牌策划是做什么的