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
|
||||
useEffect(() => {
|
||||
const storedToken = sessionStorage.getItem('authToken')
|
||||
const storedUser = sessionStorage.getItem('user')
|
||||
const storedExpiresAt = sessionStorage.getItem('authExpiresAt')
|
||||
if (storedToken && storedExpiresAt) {
|
||||
console.log('stored user', storedUser, storedToken)
|
||||
if (storedToken && storedExpiresAt && storedUser) {
|
||||
setToken(storedToken)
|
||||
setUserProfile(storedUser)
|
||||
setExpiresAt(storedExpiresAt)
|
||||
setAuthenticated(true)
|
||||
} else {
|
||||
setAuthenticated(false)
|
||||
setUserProfile(null)
|
||||
setShowUnauthorizedModal(true)
|
||||
}
|
||||
setRetreivedTokenFromSession(true)
|
||||
@ -73,6 +77,7 @@ const AuthProvider = ({ children }) => {
|
||||
setUserProfile(null)
|
||||
sessionStorage.removeItem('authToken')
|
||||
sessionStorage.removeItem('authExpiresAt')
|
||||
sessionStorage.removeItem('user')
|
||||
window.location.href = `${config.backendUrl}/auth/logout?redirect_uri=${encodeURIComponent(redirectUri)}`
|
||||
}, [])
|
||||
|
||||
@ -112,6 +117,16 @@ const AuthProvider = ({ children }) => {
|
||||
setUserProfile(response.data)
|
||||
sessionStorage.setItem('authToken', response.data.access_token)
|
||||
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)
|
||||
searchParams.delete('authCode')
|
||||
const newSearch = searchParams.toString()
|
||||
@ -154,6 +169,7 @@ const AuthProvider = ({ children }) => {
|
||||
setUserProfile(response.data)
|
||||
sessionStorage.setItem('authToken', response.data.access_token)
|
||||
sessionStorage.setItem('authExpiresAt', response.data.expires_at)
|
||||
sessionStorage.setItem('user', response.data)
|
||||
} else {
|
||||
setAuthenticated(false)
|
||||
setAuthError('Failed to authenticate user.')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user