'use strict'; import { ApiTable, AxyRequest } from '$utils' export const INIT_AUTH = 'INIT_AUTH'; export function initAuth (userData) { const sessionUser = JSON.parse(sessionStorage.getItem('user')) const user = userData || sessionUser || {}; if (user.authorized && !sessionUser) { sessionStorage.setItem('user', 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('user', 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('user')) AxyRequest.post(ApiTable.logout, { token: user.token }); sessionStorage.removeItem('user'); return { type: LOGOUT }; } export default { initAuth, login, logout }