Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄庭坚
jinfa-platform
Commits
493b2b9a
Commit
493b2b9a
authored
May 16, 2022
by
rainbowmorel@163.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加 Logout func
parent
fa2e3e9f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
60 additions
and
42 deletions
+60
-42
app.tsx
src/app.tsx
+35
-32
AvatarDropdown.tsx
src/layouts/components/AvatarDropdown.tsx
+7
-5
keycloak-js.ts
src/utils/keycloak-js.ts
+18
-5
No files found.
src/app.tsx
View file @
493b2b9a
...
@@ -97,44 +97,47 @@ export function render(oldRender: Function) {
...
@@ -97,44 +97,47 @@ export function render(oldRender: Function) {
isAuthenticated
()
isAuthenticated
()
setAuthInfo
()
setAuthInfo
()
.
finally
(()
=>
{
const
{
pathname
}
=
history
.
location
const
{
pathname
}
=
history
.
location
// 白名单页面不进行权限校验
if
(
whiteLists
.
includes
(
pathname
))
{
// 白名单页面不进行权限校验
oldRender
()
if
(
whiteLists
.
includes
(
pathname
))
{
return
;
oldRender
()
}
return
;
const
authInfo
=
getAuth
()
}
if
(
authInfo
)
{
const
authInfo
=
getAuth
()
getMemberLoginReget
({},
{
useCache
:
true
,
ttl
:
1000
}).
then
(
res
=>
{
if
(
authInfo
)
{
const
{
data
,
code
}
=
res
getMemberLoginReget
({},
{
useCache
:
true
,
ttl
:
1000
}).
then
(
res
=>
{
if
(
code
===
1000
)
{
const
{
data
,
code
}
=
res
setAuth
(
data
as
any
)
if
(
code
===
1000
)
{
setRouters
(
data
.
auth
)
setAuth
(
data
as
any
)
}
else
{
setRouters
(
data
.
auth
)
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
{
}
else
{
removeAuth
()
removeAuth
()
removeRouters
()
removeRouters
()
// history.replace('/user/login'
)
removeEnableMultiTenancy
(
)
SpaLogin
()
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
()
}
})
})
...
...
src/layouts/components/AvatarDropdown.tsx
View file @
493b2b9a
...
@@ -8,6 +8,7 @@ import { removeAuth, removeRouters, getAuth } from '@/utils/auth';
...
@@ -8,6 +8,7 @@ import { removeAuth, removeRouters, getAuth } from '@/utils/auth';
import
{
inject
,
observer
}
from
'mobx-react'
import
{
inject
,
observer
}
from
'mobx-react'
import
Icon
from
'@ant-design/icons'
;
import
Icon
from
'@ant-design/icons'
;
import
{
ReactComponent
as
DefaultAvatar
}
from
'@/assets/imgs/default_avatar.svg'
;
import
{
ReactComponent
as
DefaultAvatar
}
from
'@/assets/imgs/default_avatar.svg'
;
import
{
SpaLogout
}
from
'@/utils/keycloak-js'
;
const
AvatarDropdown
=
(
props
)
=>
{
const
AvatarDropdown
=
(
props
)
=>
{
...
@@ -16,11 +17,12 @@ const AvatarDropdown = (props) => {
...
@@ -16,11 +17,12 @@ const AvatarDropdown = (props) => {
const
logout
=
()
=>
{
const
logout
=
()
=>
{
removeAuth
()
removeAuth
()
removeRouters
()
removeRouters
()
SpaLogout
()
history
.
replace
(
'/user/login'
)
history
.
replace
(
'/user/login'
)
}
}
const
currentUser
=
{
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
||
''
,
avatar
:
props
.
UserStore
.
avatar
||
''
,
}
}
...
@@ -36,11 +38,11 @@ const AvatarDropdown = (props) => {
...
@@ -36,11 +38,11 @@ const AvatarDropdown = (props) => {
</Menu.Item>
</Menu.Item>
<Menu.Divider /> */
}
<Menu.Divider /> */
}
<
Menu
.
Item
key=
"changePwd"
>
<
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
>
<
Menu
.
Item
onClick=
{
logout
}
key=
"logout"
>
<
Menu
.
Item
onClick=
{
logout
}
key=
"logout"
>
<
LogoutOutlined
/>
<
LogoutOutlined
/>
{
intl
.
formatMessage
({
id
:
'common.tuichudenglu'
})
}
{
intl
.
formatMessage
({
id
:
'common.tuichudenglu'
})
}
</
Menu
.
Item
>
</
Menu
.
Item
>
</
Menu
>
</
Menu
>
)
)
...
@@ -50,8 +52,8 @@ const AvatarDropdown = (props) => {
...
@@ -50,8 +52,8 @@ const AvatarDropdown = (props) => {
<
span
className=
{
`${styles.action} ${styles.account}`
}
>
<
span
className=
{
`${styles.action} ${styles.account}`
}
>
{
{
currentUser
.
avatar
currentUser
.
avatar
?
<
Avatar
size=
"small"
className=
{
styles
.
avatar
}
src=
{
currentUser
.
avatar
}
alt=
"avatar"
/>
?
<
Avatar
size=
"small"
className=
{
styles
.
avatar
}
src=
{
currentUser
.
avatar
}
alt=
"avatar"
/>
:
<
Icon
component=
{
()
=>
<
DefaultAvatar
className=
{
styles
.
logo
}
/>
}
/>
:
<
Icon
component=
{
()
=>
<
DefaultAvatar
className=
{
styles
.
logo
}
/>
}
/>
}
}
<
span
className=
{
styles
.
name
}
>
{
currentUser
?.
name
}
</
span
>
<
span
className=
{
styles
.
name
}
>
{
currentUser
?.
name
}
</
span
>
...
...
src/utils/keycloak-js.ts
View file @
493b2b9a
import
{
getMemberInReturnForToken
}
from
'@/services/MemberV2Api'
;
import
{
getMemberInReturnForToken
}
from
'@/services/MemberV2Api'
;
import
{
message
}
from
'antd'
;
import
Keycloak
from
'keycloak-js'
;
import
Keycloak
from
'keycloak-js'
;
let
_keycloak
=
null
;
let
_keycloak
=
null
;
...
@@ -35,17 +36,28 @@ export function getKeycloakToken(): string {
...
@@ -35,17 +36,28 @@ export function getKeycloakToken(): string {
return
getKeycloak
().
token
return
getKeycloak
().
token
}
}
export
function
setAuthInfo
()
{
export
function
setAuthInfo
()
:
Promise
<
any
>
{
getMemberInReturnForToken
({},
{
return
getMemberInReturnForToken
({},
{
headers
:
{
headers
:
{
keycloakToken
:
getKeycloakToken
()
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
))
localStorage
.
setItem
(
'AUTH'
,
JSON
.
stringify
(
res
))
})
}
})
}
}
export
function
SpaLogin
()
{
export
function
SpaLogin
()
{
getKeycloak
().
login
({
redirectUri
:
window
.
location
.
origin
})
getKeycloak
().
login
({
redirectUri
:
window
.
location
.
origin
})
}
export
function
SpaLogout
()
{
getKeycloak
().
logout
()
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment