React JWT 教程
React JWT 是一个用于 React 应用的简单 JWT(JSON Web Tokens)身份验证解决方案。它可以帮助你轻松地在你的 React 应用中实现用户认证。
安装
首先,你需要安装 react-jwt
包。你可以使用 npm 或 yarn 来安装它:
npm install react-jwt
yarn add react-jwt
使用
下面是一个简单的例子,展示如何在 React 组件中使用 react-jwt
:
import React from 'react';
import jwtDecode from 'jwt-decode';
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
token: localStorage.getItem('token'),
user: null
};
}
componentDidMount() {
if (this.state.token) {
this.setState({ user: jwtDecode(this.state.token) });
}
}
render() {
const { user } = this.state;
return (
<div>
{user && <h1>欢迎,{user.username}!</h1>}
{!user && <h1>请登录</h1>}
</div>
);
}
}
export default App;
登录
为了使用 JWT,你需要一个后端服务来生成和验证 JWT。这里有一个简单的登录示例:
import React, { useState } from 'react';
import axios from 'axios';
const Login = () => {
const [username, setUsername] = useState('');
const [password, setPassword] = useState('');
const handleLogin = async (e) => {
e.preventDefault();
try {
const response = await axios.post('/api/login', {
username,
password
});
localStorage.setItem('token', response.data.token);
window.location.href = '/'; // 重定向到主页
} catch (error) {
console.error('登录失败:', error);
}
};
return (
<form onSubmit={handleLogin}>
<div>
<label>用户名:</label>
<input
type="text"
value={username}
onChange={(e) => setUsername(e.target.value)}
/>
</div>
<div>
<label>密码:</label>
<input
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
/>
</div>
<button type="submit">登录</button>
</form>
);
};
export default Login;
更多关于 JWT 和 React 的教程,请访问我们的 React JWT 教程。