1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import { make } from 'vuex-pathify'
- import jwt from 'jsonwebtoken'
- import Cookies from 'js-cookie'
- const state = {
- id: 0,
- email: '',
- name: '',
- pictureUrl: '',
- localeCode: '',
- defaultEditor: '',
- permissions: [],
- iat: 0,
- exp: 0,
- authenticated: false
- }
- export default {
- namespaced: true,
- state,
- mutations: {
- ...make.mutations(state),
- REFRESH_AUTH(state) {
- const jwtCookie = Cookies.get('jwt')
- if (jwtCookie) {
- try {
- const jwtData = jwt.decode(jwtCookie)
- state.id = jwtData.id
- state.email = jwtData.email
- state.name = jwtData.name
- state.pictureUrl = jwtData.pictureUrl
- state.localeCode = jwtData.localeCode
- state.defaultEditor = jwtData.defaultEditor
- state.permissions = jwtData.permissions
- state.iat = jwtData.iat
- state.exp = jwtData.exp
- state.authenticated = true
- } catch (err) {
- console.debug('Invalid JWT. Silent authentication skipped.')
- }
- }
- }
- }
- }
|