mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-06 07:09:56 +02:00
Fixed #57: now refresh jwt token on page refresh
This commit is contained in:
parent
8fa7330602
commit
f1557ac4b9
4 changed files with 53 additions and 4 deletions
|
@ -1,9 +1,11 @@
|
|||
import Vue from 'vue'
|
||||
import jwtDecode from 'jwt-decode'
|
||||
import config from '@/config'
|
||||
import logger from '@/logging'
|
||||
import router from '@/router'
|
||||
|
||||
const LOGIN_URL = config.API_URL + 'token/'
|
||||
const REFRESH_TOKEN_URL = config.API_URL + 'token/refresh/'
|
||||
const USER_PROFILE_URL = config.API_URL + 'users/users/me/'
|
||||
|
||||
export default {
|
||||
|
@ -13,7 +15,8 @@ export default {
|
|||
username: '',
|
||||
availablePermissions: {},
|
||||
profile: null,
|
||||
token: ''
|
||||
token: '',
|
||||
tokenData: {}
|
||||
},
|
||||
getters: {
|
||||
header: state => {
|
||||
|
@ -32,6 +35,7 @@ export default {
|
|||
},
|
||||
token: (state, value) => {
|
||||
state.token = value
|
||||
state.tokenData = jwtDecode(value)
|
||||
},
|
||||
permission: (state, {key, status}) => {
|
||||
state.availablePermissions[key] = status
|
||||
|
@ -70,6 +74,7 @@ export default {
|
|||
commit('token', jwt)
|
||||
logger.default.info('Logged back in as ' + username)
|
||||
dispatch('fetchProfile')
|
||||
dispatch('refreshToken')
|
||||
} else {
|
||||
logger.default.info('Anonymous user')
|
||||
commit('authenticated', false)
|
||||
|
@ -90,6 +95,15 @@ export default {
|
|||
}, (response) => {
|
||||
logger.default.info('Error while fetching user profile')
|
||||
})
|
||||
},
|
||||
refreshToken ({commit, dispatch, state}) {
|
||||
let resource = Vue.resource(REFRESH_TOKEN_URL)
|
||||
return resource.save({}, {token: state.token}).then(response => {
|
||||
logger.default.info('Refreshed auth token')
|
||||
commit('token', response.data.token)
|
||||
}, response => {
|
||||
logger.default.error('Error while refreshing token', response.data)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue