本文实现react+antd框架实现登录记录token功能和退出功能
一、登录功能:
1、 页面代码部分
import React from 'react'
import { Form, Input, Button, Image, message } from 'antd';
import { UserOutlined, LockOutlined, BarcodeOutlined } from '@ant-design/icons';
function Login(props) {
return (
<div className="login-box">
<div className="login-min">
<div className="avatar_box">
<img src="./logo192.png" alt="" />
</div>
<Form name="normal_login" className="login-form" onFinish={onFinish}>
<Form.Item name="username" rules={[{ required: true, message: '请输入账号' }]} className="username" >
<Input prefix={<UserOutlined className="site-form-item-icon" />} placeholder="账号" size="large"/>
</Form.Item>
<Form.Item name="password" rules={[{ required: true, message: '请输入密码' }]} >
<Input prefix={<LockOutlined className="site-form-item-icon" />} type="password" placeholder="密码" size="large" />
</Form.Item>
<Form.Item>
<Button type="primary" htmlType="submit" className="login-form-button" size="large">登录</Button>
</Form.Item>
</Form>
</div>
</div>
)
}
export default Login2、 页面逻辑代码部分
import React from 'react'
import { Form, Input, Button, Image, message } from 'antd';
import { UserOutlined, LockOutlined, BarcodeOutlined } from '@ant-design/icons';
import { setToken } from '../../utils/auth'
import { loginApi } from '../../utils/service';
function Login(props) {
const onFinish = (values) => {
// console.log('Success:', values);
loginApi({
username: values.username,
password: values.password,
}).then(res=>{
console.log(res)
if(res.code===0){
// console.log(res.data.token)
setToken(res.data.token)
props.history.push('/admin/wecome')
message.success(res.msg)
}else{
message.error(res.msg)
}
}).catch(err=>{
message.error('服务器故障')
})
};
}
export default Login3、 axios请求接口部分封装,详见这篇文章:react封装axios请求接口
最终效果:

二、退出功能
1、编写退出方法:清除token并跳转至登录页面
const Logout = () => {
clearToken();
props.history.push('/login')
message.success('退出成功')
};2、放置退出按钮
<div className="admin">
<span>admin</span>
<span onClick={Logout}><PoweroffOutlined /></span>
</div>
关于简忆
简忆诞生的故事



粤ICP备16092285号
文章评论(0)