Seperate setUserToken from setUser in store

This commit is contained in:
advplyr 2025-07-08 09:45:24 -05:00
parent 4ff7355262
commit d0d152c20d
3 changed files with 13 additions and 14 deletions

View file

@ -189,6 +189,7 @@ export default {
this.$store.commit('libraries/setCurrentLibrary', userDefaultLibraryId)
this.$store.commit('user/setUser', user)
this.$store.commit('user/setUserToken', user.accessToken)
this.$store.dispatch('user/loadUserSettings')
},

View file

@ -45,6 +45,7 @@ export default function ({ $axios, store, $root, app }) {
if (originalRequest.url === '/auth/refresh' || originalRequest.url === '/login') {
// Refresh failed or login failed, redirect to login
store.commit('user/setUser', null)
store.commit('user/setUserToken', null)
app.router.push('/login')
return Promise.reject(error)
}
@ -81,6 +82,7 @@ export default function ({ $axios, store, $root, app }) {
// Update the token in store and localStorage
store.commit('user/setUser', response.user)
store.commit('user/setUserToken', newAccessToken)
// Emit event used to re-authenticate socket in default.vue since $root is not available here
if (app.$eventBus) {
@ -106,6 +108,7 @@ export default function ({ $axios, store, $root, app }) {
// Clear user data and redirect to login
store.commit('user/setUser', null)
store.commit('user/setUserToken', null)
app.router.push('/login')
return Promise.reject(refreshError)

View file

@ -151,22 +151,17 @@ export const actions = {
export const mutations = {
setUser(state, user) {
state.user = user
if (user) {
// Use accessToken from user if included in response (for login)
if (user.accessToken) localStorage.setItem('token', user.accessToken)
else if (localStorage.getItem('token')) {
user.accessToken = localStorage.getItem('token')
} else {
console.error('No access token found for user', user)
}
} else {
localStorage.removeItem('token')
}
},
setUserToken(state, token) {
if (!state.user) return
state.user.accessToken = token
localStorage.setItem('token', token)
if (!token) {
localStorage.removeItem('token')
if (state.user) {
state.user.accessToken = null
}
} else if (state.user) {
state.user.accessToken = token
localStorage.setItem('token', token)
}
},
updateMediaProgress(state, { id, data }) {
if (!state.user) return