angular php分离,angular.js - 前后端分离的单页应用如何来判断当前用户的登录状态?...

给我你的怀抱2017-05-15 17:11:329楼

history.listen(location => {

const pathname = location.pathname;

if (pathname !== '/login' && pathname !== '/logout') {

dispatch({

type: 'check',

payload: pathname

});

}else if(pathname === '/logout'){

dispatch({

type: 'logout',

payload: pathname

});

}

});

*check({ payload }, { select, call, put }) {

const { isLogin, lastCheck, interval } = yield select( ({ auth }) => auth);

const now = (new Date()).getTime();

yield put({

type: 'authRedirect',

payload,

})

if (!isLogin){

yield put(routerRedux.push('/login'));

return ;

}

//是否异步检测

if (!interval || (now - lastCheck) < interval ){

return;

}

const { data, err } = yield call(fresh);

if (data && data.status==0) {

yield put({

type: 'freshSuccess',

payload: data.data,

});

return ;

}

yield put(routerRedux.push('/login'));

}

// fresh login status

export async function fresh(params) {

return request(`/api/auth/fresh?${qs.stringify(params)}`);

}

监听 url 变化,如果不是login logout 就检查登录状态。

检查登录状态

检查js变量,没有登录就直接跳登录页

如果js变量已经登录,就判断一下是否需要异步检测 不需要检测就结束(比如上次检测是在60秒内)。

如果需要异步检测,就异步检测是否登录,如果成功 刷新一下lastcheck时间。

如果检测没有登录,就直接跳登录页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值