You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.1 KiB
81 lines
2.1 KiB
'use strict';
|
|
|
|
import { ApiTable, AxyRequest } from '$utils'
|
|
|
|
export const INIT_AUTH = 'INIT_AUTH';
|
|
export function initAuth (userData) {
|
|
const sessionUser = JSON.parse(sessionStorage.getItem('vcmpUser'))
|
|
const user = userData || sessionUser || {};
|
|
if (user.authorized && !sessionUser) {
|
|
sessionStorage.setItem('vcmpUser', JSON.stringify(user))
|
|
}
|
|
return {
|
|
type: INIT_AUTH,
|
|
payload: {
|
|
user: user
|
|
}
|
|
};
|
|
}
|
|
|
|
export const REQUEST_LOGIN = 'REQUEST_LOGIN';
|
|
export const LOGIN_SUCCESS = 'LOGIN_SUCCESS';
|
|
export const LOGIN_ERROR = 'LOGIN_ERROR';
|
|
export function login (username, password) {
|
|
return dispatch => {
|
|
dispatch({ type: REQUEST_LOGIN });
|
|
|
|
if (!username || !password) {
|
|
dispatch({
|
|
type: LOGIN_ERROR,
|
|
payload: { error: '请输入账号名和密码' }
|
|
});
|
|
return Promise.resolve();
|
|
}
|
|
|
|
// return dispatch({
|
|
// type: LOGIN_SUCCESS,
|
|
// payload: {
|
|
// user: {
|
|
// authorized: true,
|
|
// namePresent: 'TEST'
|
|
// }
|
|
// },
|
|
// });
|
|
|
|
return AxyRequest.post(ApiTable.login, { username, password, domain: 'anxinyun' })
|
|
.then(user => {
|
|
sessionStorage.setItem('vcmpUser', JSON.stringify(user));
|
|
return dispatch({
|
|
type: LOGIN_SUCCESS,
|
|
payload: { user: user },
|
|
});
|
|
}, error => {
|
|
let { body } = error.response;
|
|
return dispatch({
|
|
type: LOGIN_ERROR,
|
|
payload: {
|
|
error: body && body.message ? body.message : '登录失败'
|
|
}
|
|
})
|
|
});
|
|
}
|
|
}
|
|
|
|
export const LOGOUT = 'LOGOUT';
|
|
export function logout () {
|
|
const user = JSON.parse(sessionStorage.getItem('vcmpUser'))
|
|
user && user.token ?
|
|
AxyRequest.post(ApiTable.logout, {
|
|
token: user.token
|
|
}) : null;
|
|
sessionStorage.removeItem('vcmpUser');
|
|
return {
|
|
type: LOGOUT
|
|
};
|
|
}
|
|
|
|
export default {
|
|
initAuth,
|
|
login,
|
|
logout
|
|
}
|