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.
63 lines
1.6 KiB
63 lines
1.6 KiB
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,
|
|
};
|
|
},
|
|
},
|
|
};
|
|
|