mirror of
https://github.com/sasjs/server.git
synced 2025-12-10 19:34:34 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cc6f8a64b5 |
11
web/package-lock.json
generated
11
web/package-lock.json
generated
@@ -22,6 +22,7 @@
|
|||||||
"@types/node": "^12.20.28",
|
"@types/node": "^12.20.28",
|
||||||
"@types/react": "^17.0.27",
|
"@types/react": "^17.0.27",
|
||||||
"axios": "^0.24.0",
|
"axios": "^0.24.0",
|
||||||
|
"jwt-decode": "3.1.2",
|
||||||
"react": "^17.0.2",
|
"react": "^17.0.2",
|
||||||
"react-dom": "^17.0.2",
|
"react-dom": "^17.0.2",
|
||||||
"react-router-dom": "^5.3.0"
|
"react-router-dom": "^5.3.0"
|
||||||
@@ -8161,6 +8162,11 @@
|
|||||||
"node": ">=4.0"
|
"node": ">=4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jwt-decode": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
|
||||||
|
"integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
|
||||||
|
},
|
||||||
"node_modules/kind-of": {
|
"node_modules/kind-of": {
|
||||||
"version": "6.0.3",
|
"version": "6.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
||||||
@@ -17382,6 +17388,11 @@
|
|||||||
"object.assign": "^4.1.2"
|
"object.assign": "^4.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"jwt-decode": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
|
||||||
|
"integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
|
||||||
|
},
|
||||||
"kind-of": {
|
"kind-of": {
|
||||||
"version": "6.0.3",
|
"version": "6.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
"@types/node": "^12.20.28",
|
"@types/node": "^12.20.28",
|
||||||
"@types/react": "^17.0.27",
|
"@types/react": "^17.0.27",
|
||||||
"axios": "^0.24.0",
|
"axios": "^0.24.0",
|
||||||
|
"jwt-decode": "3.1.2",
|
||||||
"react": "^17.0.2",
|
"react": "^17.0.2",
|
||||||
"react-dom": "^17.0.2",
|
"react-dom": "^17.0.2",
|
||||||
"react-router-dom": "^5.3.0"
|
"react-router-dom": "^5.3.0"
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ const Header = (props: any) => {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<UserName
|
<UserName
|
||||||
userName={appContext.userName}
|
userName={appContext.displayName}
|
||||||
onClickHandler={handleMenu}
|
onClickHandler={handleMenu}
|
||||||
/>
|
/>
|
||||||
<Menu
|
<Menu
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import React, {
|
|||||||
} from 'react'
|
} from 'react'
|
||||||
|
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
import jwt_decode from 'jwt-decode'
|
||||||
|
|
||||||
const NODE_ENV = process.env.NODE_ENV
|
const NODE_ENV = process.env.NODE_ENV
|
||||||
const PORT_API = process.env.PORT_API
|
const PORT_API = process.env.PORT_API
|
||||||
@@ -73,6 +74,7 @@ const getTokens = () => {
|
|||||||
|
|
||||||
interface AppContextProps {
|
interface AppContextProps {
|
||||||
userName: string
|
userName: string
|
||||||
|
displayName: string
|
||||||
setUserName: Dispatch<SetStateAction<string>> | null
|
setUserName: Dispatch<SetStateAction<string>> | null
|
||||||
tokens?: { accessToken: string; refreshToken: string }
|
tokens?: { accessToken: string; refreshToken: string }
|
||||||
setTokens: ((accessToken: string, refreshToken: string) => void) | null
|
setTokens: ((accessToken: string, refreshToken: string) => void) | null
|
||||||
@@ -81,6 +83,7 @@ interface AppContextProps {
|
|||||||
|
|
||||||
export const AppContext = createContext<AppContextProps>({
|
export const AppContext = createContext<AppContextProps>({
|
||||||
userName: '',
|
userName: '',
|
||||||
|
displayName: '',
|
||||||
tokens: getTokens(),
|
tokens: getTokens(),
|
||||||
setUserName: null,
|
setUserName: null,
|
||||||
setTokens: null,
|
setTokens: null,
|
||||||
@@ -90,6 +93,7 @@ export const AppContext = createContext<AppContextProps>({
|
|||||||
const AppContextProvider = (props: { children: ReactNode }) => {
|
const AppContextProvider = (props: { children: ReactNode }) => {
|
||||||
const { children } = props
|
const { children } = props
|
||||||
const [userName, setUserName] = useState('')
|
const [userName, setUserName] = useState('')
|
||||||
|
const [displayName, setDisplayName] = useState('')
|
||||||
const [tokens, setTokens] = useState(getTokens())
|
const [tokens, setTokens] = useState(getTokens())
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -97,11 +101,27 @@ const AppContextProvider = (props: { children: ReactNode }) => {
|
|||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
console.log(97)
|
|
||||||
if (tokens === undefined) {
|
if (tokens === undefined) {
|
||||||
console.log(99)
|
|
||||||
localStorage.removeItem('accessToken')
|
localStorage.removeItem('accessToken')
|
||||||
localStorage.removeItem('refreshToken')
|
localStorage.removeItem('refreshToken')
|
||||||
|
setUserName('')
|
||||||
|
setDisplayName('')
|
||||||
|
} else {
|
||||||
|
const decoded: any = jwt_decode(tokens.accessToken)
|
||||||
|
if (decoded.userId) {
|
||||||
|
axios
|
||||||
|
.get(`/SASjsApi/user/${decoded.userId}`)
|
||||||
|
.then((res: any) => {
|
||||||
|
if (res.data && res.data?.displayName) {
|
||||||
|
setDisplayName(res.data.displayName)
|
||||||
|
} else if (res.data && res.data?.username) {
|
||||||
|
setDisplayName(res.data.username)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, [tokens])
|
}, [tokens])
|
||||||
|
|
||||||
@@ -109,7 +129,6 @@ const AppContextProvider = (props: { children: ReactNode }) => {
|
|||||||
(accessToken: string, refreshToken: string) => {
|
(accessToken: string, refreshToken: string) => {
|
||||||
localStorage.setItem('accessToken', accessToken)
|
localStorage.setItem('accessToken', accessToken)
|
||||||
localStorage.setItem('refreshToken', refreshToken)
|
localStorage.setItem('refreshToken', refreshToken)
|
||||||
console.log(accessToken)
|
|
||||||
setAxiosRequestHeader(accessToken)
|
setAxiosRequestHeader(accessToken)
|
||||||
setTokens({ accessToken, refreshToken })
|
setTokens({ accessToken, refreshToken })
|
||||||
},
|
},
|
||||||
@@ -125,6 +144,7 @@ const AppContextProvider = (props: { children: ReactNode }) => {
|
|||||||
<AppContext.Provider
|
<AppContext.Provider
|
||||||
value={{
|
value={{
|
||||||
userName,
|
userName,
|
||||||
|
displayName,
|
||||||
setUserName,
|
setUserName,
|
||||||
tokens,
|
tokens,
|
||||||
setTokens: saveTokens,
|
setTokens: saveTokens,
|
||||||
|
|||||||
Reference in New Issue
Block a user