Commit 493b2b9a authored by rainbowmorel@163.com's avatar rainbowmorel@163.com

添加 Logout func

parent fa2e3e9f
......@@ -97,44 +97,47 @@ export function render(oldRender: Function) {
isAuthenticated()
setAuthInfo()
.finally(() => {
const { pathname } = history.location
const { pathname } = history.location
// 白名单页面不进行权限校验
if (whiteLists.includes(pathname)) {
oldRender()
return;
}
const authInfo = getAuth()
if (authInfo) {
getMemberLoginReget({}, { useCache: true, ttl: 1000 }).then(res => {
const { data, code } = res
if (code === 1000) {
setAuth(data as any)
setRouters(data.auth)
// 白名单页面不进行权限校验
if (whiteLists.includes(pathname)) {
oldRender()
return;
}
const authInfo = getAuth()
if (authInfo) {
getMemberLoginReget({}, { useCache: true, ttl: 1000 }).then(res => {
const { data, code } = res
if (code === 1000) {
setAuth(data as any)
setRouters(data.auth)
} else {
removeAuth()
removeRouters()
// history.replace('/user/login')
SpaLogin()
}
oldRender()
}).catch(() => {
oldRender()
})
getManagePaasSiteEnableMultiTenancy({ siteId: GlobalConfig.global.siteInfo.id.toString() }).then(res => {
if (res.code !== 1000) {
return
}
setEnableMultiTenancy(res.data);
})
} else {
removeAuth()
removeRouters()
// history.replace('/user/login')
SpaLogin()
removeEnableMultiTenancy()
oldRender()
}
oldRender()
}).catch(() => {
oldRender()
})
getManagePaasSiteEnableMultiTenancy({ siteId: GlobalConfig.global.siteInfo.id.toString() }).then(res => {
if (res.code !== 1000) {
return
}
setEnableMultiTenancy(res.data);
})
} else {
removeAuth()
removeRouters()
removeEnableMultiTenancy()
oldRender()
}
})
......
......@@ -8,6 +8,7 @@ import { removeAuth, removeRouters, getAuth } from '@/utils/auth';
import { inject, observer } from 'mobx-react'
import Icon from '@ant-design/icons';
import { ReactComponent as DefaultAvatar } from '@/assets/imgs/default_avatar.svg';
import { SpaLogout } from '@/utils/keycloak-js';
const AvatarDropdown = (props) => {
......@@ -16,11 +17,12 @@ const AvatarDropdown = (props) => {
const logout = () => {
removeAuth()
removeRouters()
SpaLogout()
history.replace('/user/login')
}
const currentUser = {
name: userAuth.name || userAuth?.company || intl.formatMessage({id: 'common.weizhiyonghu'}),
name: userAuth.name || userAuth?.company || intl.formatMessage({ id: 'common.weizhiyonghu' }),
avatar: props.UserStore.avatar || '',
}
......@@ -36,11 +38,11 @@ const AvatarDropdown = (props) => {
</Menu.Item>
<Menu.Divider /> */}
<Menu.Item key="changePwd">
<Link to="/memberCenter/systemSetting/accountSetting"><LockOutlined />{intl.formatMessage({id: 'common.xiugaimima'})}</Link>
<Link to="/memberCenter/systemSetting/accountSetting"><LockOutlined />{intl.formatMessage({ id: 'common.xiugaimima' })}</Link>
</Menu.Item>
<Menu.Item onClick={logout} key="logout">
<LogoutOutlined />
{intl.formatMessage({id: 'common.tuichudenglu'})}
{intl.formatMessage({ id: 'common.tuichudenglu' })}
</Menu.Item>
</Menu>
)
......@@ -50,8 +52,8 @@ const AvatarDropdown = (props) => {
<span className={`${styles.action} ${styles.account}`}>
{
currentUser.avatar
? <Avatar size="small" className={styles.avatar} src={currentUser.avatar} alt="avatar" />
: <Icon component={() => <DefaultAvatar className={styles.logo} />} />
? <Avatar size="small" className={styles.avatar} src={currentUser.avatar} alt="avatar" />
: <Icon component={() => <DefaultAvatar className={styles.logo} />} />
}
<span className={styles.name}>{currentUser?.name}</span>
......
import { getMemberInReturnForToken } from '@/services/MemberV2Api';
import { message } from 'antd';
import Keycloak from 'keycloak-js';
let _keycloak = null;
......@@ -35,17 +36,28 @@ export function getKeycloakToken(): string {
return getKeycloak().token
}
export function setAuthInfo() {
getMemberInReturnForToken({}, {
export function setAuthInfo(): Promise<any> {
return getMemberInReturnForToken({}, {
headers: {
keycloakToken: getKeycloakToken()
}
}).then(res => res.data)
.then(res => {
}).then(res => {
if (res.code !== 1000) {
message.error(res.message);
return
}
return res.data;
}).then(res => {
if (undefined != res) {
localStorage.setItem('AUTH', JSON.stringify(res))
})
}
})
}
export function SpaLogin() {
getKeycloak().login({ redirectUri: window.location.origin })
}
export function SpaLogout() {
getKeycloak().logout()
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment