Comments (5)
@LeonLiber can you please provide a https://jsfiddle.net/ with your situation / example of your setup?
from vuex-persistedstate.
Hi @robinvdvleuten, It's a bit of a complicated setup for jsfiddle so I'll try to post it here.
The core of the store looks like that:
import Vue from 'vue';
import Vuex from 'vuex';
import persistedState from 'vuex-persistedstate';
Vue.use(Vuex);
export default new Vuex.Store({
plugins: [persistedState({
paths: ['user'],
})],
state: {
user: { },
},
getters: {
isUserLoggedin(state) {
return Object.keys(state.user).length > 0;
},
user(state) {
return state.user;
},
},
mutations: {
SET_USER(state, userData) {
state.user = userData;
},
UNSET_USER(state) {
state.user = {};
},
},
actions: {
setUser({ commit }, userData) {
commit('SET_USER', userData);
},
unsetUser({ commit }) {
commit('UNSET_USER');
},
},
});
I want to subscribe to the "resetting" of the user so I can set a default http headers with the proper user token.
This is what I tried:
store.subscribe((mutation) => {
console.log('MUTATED', mutation);
});
And I get no log when user
is re-set after page refresh.
UPDATE
I think (not tried yet) that I could replace the getState method on init with something like that:
getState = (key, storage) => {
const value = storage.getItem(key);
// My custom code to set Axios headers
return value && value !== 'undefined' ? JSON.parse(value) : undefined;
}
But it feels like an ugly workaround :(
Would love to hear your thoughts,
Thanks!
from vuex-persistedstate.
@LeonLiber so as I try to understand your issue, you are trying to set custom axios headers when your app is initialised right?
from vuex-persistedstate.
@robinvdvleuten Correct. The token I'm going to store in the header is coming from the persistent store so I need to act on the state "rehydration"
from vuex-persistedstate.
@LeonLiber why not fetch the correct header from the store when initializing your app (so after the store is dehydrated). Please see both urls for an example;
https://github.com/robinvdvleuten/vue-auth0-vuex/blob/master/template/src/router/index.js#L36
https://github.com/robinvdvleuten/vue-auth0-vuex/blob/master/template/src/router/index.js#L9
This onEnter
hook dispatches an event which will fetch a new token. You can use the same pattern for setting the header on axios by fetching the value from the store.
from vuex-persistedstate.
Related Issues (20)
- how can i use dynamic key HOT 2
- Not working with Secure-Ls HOT 1
- High Severity: Prototype Pollution vulnerability in module shvl
- How to encrypt sessionStorage using secure-ls? HOT 1
- Feature Request: Code Examples / Documentation for Options
- Lots of plugins? HOT 1
- VueDevtools not data HOT 1
- Example needed: path options and namespaces HOT 1
- secure-ls | Uncaught Error: Could not parse JSON HOT 2
- Wrong data after restore. HOT 1
- One cookie by module with JS-COOKIE
- Storage option with Js cookie stops working suddenly HOT 1
- vuex-persistedstate does not follow vuex plugin guidelines HOT 2
- Newbe Question - Restore data from localStore to Vuex on page reload in Nuxt.js HOT 2
- Unable to access data from Vuex after rehydration in Nuxt.js HOT 2
- Clearing localstorage in developer tools not working HOT 2
- Feature Request: Support Pinia HOT 1
- [Feature Request] can `paths` option support `function` and `Regex`?
- It's not clear to me if Vuex 3 and Vue 2 are supported by vuex-persistedstate 4
- Exemple using cookie-universal-nuxt HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vuex-persistedstate.