Browse Source

optimize SecurityLayout (#5252)

pull/5263/head
kwzm 7 years ago
committed by 陈帅
parent
commit
893594dbd0
  1. 14
      src/layouts/SecurityLayout.tsx

14
src/layouts/SecurityLayout.tsx

@ -1,6 +1,7 @@
import React from 'react';
import { connect } from 'dva';
import { Redirect } from 'umi';
import { stringify } from 'querystring';
import { ConnectState, ConnectProps } from '@/models/connect';
import { CurrentUser } from '@/models/user';
import PageLoading from '@/components/PageLoading';
@ -34,11 +35,18 @@ class SecurityLayout extends React.Component<SecurityLayoutProps, SecurityLayout
render() {
const { isReady } = this.state;
const { children, loading, currentUser } = this.props;
if ((!currentUser.userid && loading) || !isReady) {
// You can replace it to your authentication rule (such as check token exists)
// 你可以把它替换成你自己的登录认证规则(比如判断 token 是否存在)
const isLogin = currentUser && currentUser.userid;
const queryString = stringify({
redirect: window.location.href,
});
if ((!isLogin && loading) || !isReady) {
return <PageLoading />;
}
if (!currentUser.userid) {
return <Redirect to="/user/login"></Redirect>;
if (!isLogin) {
return <Redirect to={`/user/login?${queryString}`}></Redirect>;
}
return children;
}

Loading…
Cancel
Save