Bugfix: user doesn't persist between session reloads.

This commit is contained in:
Tom Butcher 2025-08-22 20:42:00 +01:00
parent 8dd423a77e
commit bd0c443260

View File

@ -54,7 +54,7 @@ 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 storedUser = JSON.parse(sessionStorage.getItem('user'))
const storedExpiresAt = sessionStorage.getItem('authExpiresAt') const storedExpiresAt = sessionStorage.getItem('authExpiresAt')
console.log('stored user', storedUser, storedToken) console.log('stored user', storedUser, storedToken)
if (storedToken && storedExpiresAt && storedUser) { if (storedToken && storedExpiresAt && storedUser) {
@ -95,7 +95,13 @@ const AuthProvider = ({ children }) => {
window.location.href = loginUrl window.location.href = loginUrl
} }
}, },
[messageApi, openExternalUrl, isElectron, location.search] [
messageApi,
openExternalUrl,
isElectron,
location.search,
location.pathname
]
) )
const getLoginToken = useCallback( const getLoginToken = useCallback(
@ -117,16 +123,13 @@ 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', { const userObject = {
...response.data, ...response.data,
// eslint-disable-next-line access_token: undefined,
access_token: 'redacted', refresh_token: undefined,
// eslint-disable-next-line id_token: undefined
refresh_token: 'redacted', }
// eslint-disable-next-line sessionStorage.setItem('user', JSON.stringify(userObject))
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()