添加token

This commit is contained in:
licuizhu 2024-05-27 16:17:02 +08:00
parent 4c876e5ac3
commit 1063d79d50
5 changed files with 57 additions and 24 deletions

View File

@ -1,10 +1,11 @@
import { request } from '@umijs/max'; import { request } from '@umijs/max';
import loginStore from '../store/login.store';
// 获取登陆人 // 获取登陆人
export function getCurrentUser( data ) { export function getCurrentUser() {
let token = loginStore.token
return request('/api/user/getCurrentUser', { return request('/api/user/getCurrentUser', {
method: 'get', method: 'get'
data: data
}); });
} }

View File

@ -18,3 +18,25 @@ export const layout = () => {
}, },
}; };
}; };
// 配置请求header
import { RequestConfig } from '@umijs/max';
export const request: RequestConfig = {
requestInterceptors: [
(url, options) => {
const token = localStorage.getItem('authToken'); // 从某处获取你的认证token例如localStorage
if (token) {
const headers = {
Authorization: `Bearer ${token}`,
...options.headers,
};
return {
url: url,
options: { ...options, headers },
};
}
return { url, options };
},
],
};

View File

@ -7,7 +7,7 @@ import loginStore from '../../store/login.store';
import '../../index.less'; import '../../index.less';
function Header (e) { function Header (e) {
let token = loginStore.token; let setToken = loginStore;
let navigate = useNavigate(); let navigate = useNavigate();
let logout = () => { let logout = () => {
passwordLogout().then((e) => { passwordLogout().then((e) => {
@ -20,14 +20,15 @@ function Header (e) {
} }
useEffect(() =>{ useEffect(() =>{
getCurrentUser().then((e) => { getCurrentUser().then((e) => {
const d = e.data; if (e.success) {
token.username = d && d.username; setToken.setAuthName(e.data.username);
}
}) })
}) })
return ( return (
<div id='header'> <div id='header'>
<div className='header-left'><span className='user-name'>{token.username}</span></div> <div className='header-left'><span className='user-name'>{setToken.authName}</span></div>
<div className='headder-right'> <div className='headder-right'>
<span className='login-out' onClick={logout}></span> <span className='login-out' onClick={logout}></span>
</div> </div>

View File

@ -8,22 +8,14 @@ function Login (e) {
let navigate = useNavigate(); let navigate = useNavigate();
const [form] = Form.useForm(); const [form] = Form.useForm();
let onFinish = async (values) => { let onFinish = async (values) => {
// let setToken = loginStore.setToken;
// try {
// await setToken({username: values.username, password: values.password})
// navigate('/', {replace: true});
// message.success('登录成功')
// } catch {
// message.error('登录失败')
// }
passwordLogin({phone: values.phone, password: values.password}).then((e) => { passwordLogin({phone: values.phone, password: values.password}).then((e) => {
if (!e.success) { if (!e.success) {
message.error(e.message); message.error(e.message);
} else { } else {
let setToken = loginStore.setToken; let setToken = loginStore;
setToken(e.data); setToken.setAuthName(e.data.username);
setToken.setToken(e.data.token)
navigate('/home'); navigate('/home');
// document.cookie.save('username', 'wyd');
} }
}) })
}; };

View File

@ -2,17 +2,34 @@ import { makeAutoObservable } from "mobx";
import { http } from "../utils/http"; import { http } from "../utils/http";
import { setToken, getToken } from "../utils"; import { setToken, getToken } from "../utils";
class LoginStore { class LoginStore {
token = {}; token = localStorage.getItem('authToken') || null;
authName = localStorage.getItem('authName') || null;
constructor () { constructor () {
makeAutoObservable(this) makeAutoObservable(this)
} }
// setToken = async ({username, password}) => { // token
// const res = await http.get('/api/user/login?username=' + username + '&password=' + password) get isLoggedIn() {
// this.token = res.data return !!this.token;
// setToken(this.token) }
// }
setToken = (data) => { setToken = (data) => {
this.token = data; this.token = data;
localStorage.setItem('authToken', data);
}
clearToken() {
this.token = null;
localStorage.removeItem('authToken');
}
// 登录名
get authName() {
return !!this.authName;
}
setAuthName = (data) => {
this.authName = data;
localStorage.setItem('authName', data);
}
clearAuthName() {
this.authName = null;
localStorage.removeItem('authName');
} }
} }
const loginStore = new LoginStore(); const loginStore = new LoginStore();