From bf6724f7f1e65174d0dda334cc02f77af75e303a Mon Sep 17 00:00:00 2001 From: zuiidea Date: Wed, 2 Nov 2016 22:27:39 +0800 Subject: [PATCH] loginOut --- mock/app.js | 10 +++++++ src/components/Layout/Header.jsx | 11 +++++--- src/models/app.js | 45 +++++++++++++++++++++----------- src/routes/app.js | 4 +-- src/services/app.js | 4 +-- 5 files changed, 52 insertions(+), 22 deletions(-) diff --git a/mock/app.js b/mock/app.js index 3cbf950..e50aaf2 100644 --- a/mock/app.js +++ b/mock/app.js @@ -28,6 +28,7 @@ Watch.watch(adminUsersData, function () { module.exports = { 'POST /api/login' (req, res) { + console.log(req); const userItem = req.body const response = { success: false, @@ -60,5 +61,14 @@ module.exports = { message: "" } res.json(response) + }, + + 'POST /api/logout' (req, res) { + Cookie.remove('user_session', { path: '' }) + Cookie.remove('user_name', { path: '' }) + res.json({ + success: true, + message: "退出成功" + }) } } diff --git a/src/components/Layout/Header.jsx b/src/components/Layout/Header.jsx index 8f2310b..b37e5f9 100644 --- a/src/components/Layout/Header.jsx +++ b/src/components/Layout/Header.jsx @@ -5,14 +5,19 @@ import styles from './main.less' const SubMenu = Menu.SubMenu -function Header({location,user}) { +function Header({location,user,logout}) { + function handleClickMenu(item){ + if(item.key=='logout'){ + logout() + } + } return (
- + {user.name}< /span>}> - + 注销 diff --git a/src/models/app.js b/src/models/app.js index 4291dc9..399f530 100644 --- a/src/models/app.js +++ b/src/models/app.js @@ -1,4 +1,4 @@ -import {login, userInfo} from '../services/app' +import {login, userInfo, logout} from '../services/app' import {parse} from 'qs' import Cookie from 'js-cookie' @@ -12,12 +12,9 @@ export default { }, loginButtonLoading: false }, - subscriptions: { + subscriptions : { setup({dispatch}) { - dispatch({ - type: 'queryUser', - payload: location.query, - }) + dispatch({type: 'queryUser'}) } }, effects : { @@ -36,23 +33,35 @@ export default { }}) } }, - *queryUser({payload}, {call, put}) { + *queryUser({ + payload + }, {call, put}) { yield put({type: 'showLoading'}) const data = yield call(userInfo, parse(payload)) if (data.success) { - console.log(data); - yield put({type: 'loginSuccess', payload: { - user:{ - name:data.username + yield put({ + type: 'loginSuccess', + payload: { + user: { + name: data.username } - }}) - }else { - + } + }) + } else {} + }, + *logout({ + payload + }, {call, put}) { + const data = yield call(logout, parse(payload)) + if(data.success){ + yield put({ + type: 'logoutSuccess' + }) } } }, reducers : { - loginSuccess(state,action) { + loginSuccess(state, action) { return { ...state, ...action.payload, @@ -60,6 +69,12 @@ export default { loginButtonLoading: false } }, + logoutSuccess(state){ + return { + ...state, + login: false + } + }, loginFail(state) { return { ...state, diff --git a/src/routes/app.js b/src/routes/app.js index 1f2b8d0..e87163b 100644 --- a/src/routes/app.js +++ b/src/routes/app.js @@ -25,9 +25,9 @@ function App({children, location, dispatch,app}) { const headerProps = { user, location, - loginOut() { + logout() { dispatch({ - type: 'app/loginOut' + type: 'app/logout' }) }, } diff --git a/src/services/app.js b/src/services/app.js index d0e39c5..71b562e 100644 --- a/src/services/app.js +++ b/src/services/app.js @@ -8,8 +8,8 @@ export async function login(params) { }) } -export async function loginOut(params) { - return request('/api/loginOut', { +export async function logout(params) { + return request('/api/logout', { method: 'post', data:params, })