import { fakeAccountLogin } from '../services/api'; import { setAuthority } from '../utils/authority'; export default { namespace: 'login', state: { status: undefined, }, effects: { *login({ payload }, { call, put }) { yield put({ type: 'changeSubmitting', payload: true, }); const response = yield call(fakeAccountLogin, payload); yield put({ type: 'changeLoginStatus', payload: response, }); // Login successfully if (response.status === 'ok') { // 非常粗暴的跳转,登陆成功之后权限会变成user或admin,会自动重定向到主页 // Login success after permission changes to admin or user // The refresh will automatically redirect to the home page // yield put(routerRedux.push('/')); location.reload(); } }, *logout(_, { put }) { yield put({ type: 'changeLoginStatus', payload: { status: false, currentAuthority: 'guest', }, }); // yield put(routerRedux.push('/user/login')); // Login out after permission changes to admin or user // The refresh will automatically redirect to the login page location.reload(); }, }, reducers: { changeLoginStatus(state, { payload }) { setAuthority(payload.currentAuthority); return { ...state, status: payload.status, type: payload.type, submitting: false, }; }, changeSubmitting(state, { payload }) { return { ...state, submitting: payload, }; }, }, };