|
|
|
@ -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; |
|
|
|
} |
|
|
|
|