Enhance AuthContext to manage user profile in session storage
- Added functionality to store and retrieve user profile data from session storage. - Updated authentication logic to check for user data alongside token and expiration. - Ensured user profile is cleared upon logout and set to null when authentication fails. - Improved logging for better debugging of user authentication flow.
This commit is contained in:
parent
678d5a0e90
commit
177b439c48
@ -54,13 +54,17 @@ const AuthProvider = ({ children }) => {
|
|||||||
// Read token from session storage if present
|
// Read token from session storage if present
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const storedToken = sessionStorage.getItem('authToken')
|
const storedToken = sessionStorage.getItem('authToken')
|
||||||
|
const storedUser = sessionStorage.getItem('user')
|
||||||
const storedExpiresAt = sessionStorage.getItem('authExpiresAt')
|
const storedExpiresAt = sessionStorage.getItem('authExpiresAt')
|
||||||
if (storedToken && storedExpiresAt) {
|
console.log('stored user', storedUser, storedToken)
|
||||||
|
if (storedToken && storedExpiresAt && storedUser) {
|
||||||
setToken(storedToken)
|
setToken(storedToken)
|
||||||
|
setUserProfile(storedUser)
|
||||||
setExpiresAt(storedExpiresAt)
|
setExpiresAt(storedExpiresAt)
|
||||||
setAuthenticated(true)
|
setAuthenticated(true)
|
||||||
} else {
|
} else {
|
||||||
setAuthenticated(false)
|
setAuthenticated(false)
|
||||||
|
setUserProfile(null)
|
||||||
setShowUnauthorizedModal(true)
|
setShowUnauthorizedModal(true)
|
||||||
}
|
}
|
||||||
setRetreivedTokenFromSession(true)
|
setRetreivedTokenFromSession(true)
|
||||||
@ -73,6 +77,7 @@ const AuthProvider = ({ children }) => {
|
|||||||
setUserProfile(null)
|
setUserProfile(null)
|
||||||
sessionStorage.removeItem('authToken')
|
sessionStorage.removeItem('authToken')
|
||||||
sessionStorage.removeItem('authExpiresAt')
|
sessionStorage.removeItem('authExpiresAt')
|
||||||
|
sessionStorage.removeItem('user')
|
||||||
window.location.href = `${config.backendUrl}/auth/logout?redirect_uri=${encodeURIComponent(redirectUri)}`
|
window.location.href = `${config.backendUrl}/auth/logout?redirect_uri=${encodeURIComponent(redirectUri)}`
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
@ -112,6 +117,16 @@ const AuthProvider = ({ children }) => {
|
|||||||
setUserProfile(response.data)
|
setUserProfile(response.data)
|
||||||
sessionStorage.setItem('authToken', response.data.access_token)
|
sessionStorage.setItem('authToken', response.data.access_token)
|
||||||
sessionStorage.setItem('authExpiresAt', response.data.expires_at)
|
sessionStorage.setItem('authExpiresAt', response.data.expires_at)
|
||||||
|
console.log('SETTING USER', {
|
||||||
|
...response.data,
|
||||||
|
// eslint-disable-next-line
|
||||||
|
access_token: 'redacted',
|
||||||
|
// eslint-disable-next-line
|
||||||
|
refresh_token: 'redacted',
|
||||||
|
// eslint-disable-next-line
|
||||||
|
id_token: 'redacted'
|
||||||
|
})
|
||||||
|
sessionStorage.setItem('user', response.data)
|
||||||
const searchParams = new URLSearchParams(location.search)
|
const searchParams = new URLSearchParams(location.search)
|
||||||
searchParams.delete('authCode')
|
searchParams.delete('authCode')
|
||||||
const newSearch = searchParams.toString()
|
const newSearch = searchParams.toString()
|
||||||
@ -154,6 +169,7 @@ const AuthProvider = ({ children }) => {
|
|||||||
setUserProfile(response.data)
|
setUserProfile(response.data)
|
||||||
sessionStorage.setItem('authToken', response.data.access_token)
|
sessionStorage.setItem('authToken', response.data.access_token)
|
||||||
sessionStorage.setItem('authExpiresAt', response.data.expires_at)
|
sessionStorage.setItem('authExpiresAt', response.data.expires_at)
|
||||||
|
sessionStorage.setItem('user', response.data)
|
||||||
} else {
|
} else {
|
||||||
setAuthenticated(false)
|
setAuthenticated(false)
|
||||||
setAuthError('Failed to authenticate user.')
|
setAuthError('Failed to authenticate user.')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user