restore session from localstorage
This commit is contained in:
parent
54e5ba6e8e
commit
f9a95317a2
2 changed files with 16 additions and 10 deletions
|
@ -68,6 +68,10 @@ const routes = [
|
|||
path: 'users/', name: 'users', component: AccessControl, meta:
|
||||
{requiresAuth: true, requiresPermission: 'delete_event'}
|
||||
},
|
||||
{
|
||||
path: 'boxes/', name: 'admin_boxes', component: BoxesAdmin, meta:
|
||||
{requiresAuth: true, requiresPermission: 'delete_event'}
|
||||
},
|
||||
]
|
||||
},
|
||||
{path: '/user', name: 'user', component: Empty, meta: {requiresAuth: true}},
|
||||
|
|
|
@ -110,12 +110,14 @@ const store = new Vuex.Store({
|
|||
},
|
||||
isLoggedIn(state) {
|
||||
if (!state.local_loaded) {
|
||||
state.remember = localStorage.getItem('remember') === 'true'
|
||||
state.user = localStorage.getItem('user')
|
||||
state.userPermissions = JSON.parse(localStorage.getItem('permissions') || '[]')
|
||||
state.token = localStorage.getItem('token')
|
||||
state.token_expiry = localStorage.getItem('token_expiry')
|
||||
state.local_loaded = true
|
||||
state.remember = localStorage.getItem('remember') === 'true';
|
||||
state.user = localStorage.getItem('user');
|
||||
//state.password = localStorage.getItem('password');
|
||||
state.userPermissions = JSON.parse(localStorage.getItem('permissions') || '[]');
|
||||
state.token = localStorage.getItem('token');
|
||||
state.token_expiry = localStorage.getItem('token_expiry');
|
||||
state.local_loaded = true;
|
||||
axios.defaults.headers.common['Authorization'] = `Token ${state.token}`;
|
||||
}
|
||||
|
||||
return state.user !== null && state.token !== null;
|
||||
|
@ -234,7 +236,7 @@ const store = new Vuex.Store({
|
|||
body: JSON.stringify({username: username, password: password}),
|
||||
credentials: 'omit'
|
||||
}).then(r => r.json())
|
||||
if (data.token) {
|
||||
if (data && data.token) {
|
||||
commit('setToken', data);
|
||||
commit('setUser', username);
|
||||
commit('setPassword', password);
|
||||
|
@ -251,14 +253,14 @@ const store = new Vuex.Store({
|
|||
},
|
||||
async reloadToken({commit, state}) {
|
||||
try {
|
||||
if (data.password) {
|
||||
if (state.password) {
|
||||
const data = await fetch('/api/2/login/', {
|
||||
method: 'POST',
|
||||
headers: {'Content-Type': 'application/json'},
|
||||
body: JSON.stringify({username: state.user, password: state.password}),
|
||||
credentials: 'omit'
|
||||
}).then(r => r.json())
|
||||
if (data.token) {
|
||||
}).then(r => r.json()).catch(e => console.error(e))
|
||||
if (data && data.token) {
|
||||
commit('setToken', data);
|
||||
axios.defaults.headers.common['Authorization'] = `Token ${data.token}`;
|
||||
return true;
|
||||
|
|
Loading…
Reference in a new issue