| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | import { make } from 'vuex-pathify'import jwt from 'jsonwebtoken'import Cookies from 'js-cookie'const state = {  id: 0,  email: '',  name: '',  pictureUrl: '',  localeCode: '',  defaultEditor: '',  timezone: '',  dateFormat: '',  appearance: '',  permissions: [],  iat: 0,  exp: 0,  authenticated: false}export default {  namespaced: true,  state,  mutations: {    ...make.mutations(state),    REFRESH_AUTH(st) {      const jwtCookie = Cookies.get('jwt')      if (jwtCookie) {        try {          const jwtData = jwt.decode(jwtCookie)          st.id = jwtData.id          st.email = jwtData.email          st.name = jwtData.name          st.pictureUrl = jwtData.av          st.localeCode = jwtData.lc          st.timezone = jwtData.tz || Intl.DateTimeFormat().resolvedOptions().timeZone || ''          st.dateFormat = jwtData.df || ''          st.appearance = jwtData.ap || ''          // st.defaultEditor = jwtData.defaultEditor          st.permissions = jwtData.permissions          st.iat = jwtData.iat          st.exp = jwtData.exp          st.authenticated = true        } catch (err) {          console.debug('Invalid JWT. Silent authentication skipped.')        }      }    }  }}
 |