mirror of https://github.com/doccano/doccano.git
Hironsan
5 years ago
3 changed files with 96 additions and 0 deletions
Split View
Diff Options
@ -0,0 +1,90 @@ |
|||
import Cookie from 'js-cookie' |
|||
|
|||
export const state = () => ({ |
|||
token: null |
|||
}) |
|||
|
|||
export const mutations = { |
|||
setToken(state, token) { |
|||
state.token = token |
|||
}, |
|||
clearToken(state) { |
|||
state.token = null |
|||
} |
|||
} |
|||
|
|||
export const getters = { |
|||
isAuthenticated(state) { |
|||
return state.token != null |
|||
} |
|||
} |
|||
|
|||
export const actions = { |
|||
authenticateUser({ commit }, authData) { |
|||
let authUrl = |
|||
'https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=' + |
|||
process.env.fbAPIKey |
|||
if (!authData.isLogin) { |
|||
authUrl = |
|||
'https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=' + |
|||
process.env.fbAPIKey |
|||
} |
|||
return this.$axios |
|||
.$post(authUrl, { |
|||
email: authData.email, |
|||
password: authData.password, |
|||
returnSecureToken: true |
|||
}) |
|||
.then((result) => { |
|||
commit('setToken', result.idToken) |
|||
localStorage.setItem('token', result.idToken) |
|||
localStorage.setItem( |
|||
'tokenExpiration', |
|||
new Date().getTime() + Number.parseInt(result.expiresIn) * 1000 |
|||
) |
|||
Cookie.set('jwt', result.idToken) |
|||
Cookie.set( |
|||
'expirationDate', |
|||
new Date().getTime() + Number.parseInt(result.expiresIn) * 1000 |
|||
) |
|||
}) |
|||
.catch(e => alert(e)) |
|||
}, |
|||
initAuth({ commit, dispatch }, req) { |
|||
let token |
|||
let expirationDate |
|||
if (req) { |
|||
if (!req.headers.cookie) { |
|||
return |
|||
} |
|||
const jwtCookie = req.headers.cookie |
|||
.split(';') |
|||
.find(c => c.trim().startsWith('jwt=')) |
|||
if (!jwtCookie) { |
|||
return |
|||
} |
|||
token = jwtCookie.split('=')[1] |
|||
expirationDate = req.headers.cookie |
|||
.split(';') |
|||
.find(c => c.trim().startsWith('expirationDate=')) |
|||
.split('=')[1] |
|||
} else { |
|||
token = localStorage.getItem('token') |
|||
expirationDate = localStorage.getItem('tokenExpiration') |
|||
} |
|||
if (new Date().getTime() > +expirationDate || !token) { |
|||
dispatch('logout') |
|||
return |
|||
} |
|||
commit('setToken', token) |
|||
}, |
|||
logout({ commit }) { |
|||
commit('clearToken') |
|||
Cookie.remove('jwt') |
|||
Cookie.remove('expirationDate') |
|||
if (process.client) { |
|||
localStorage.removeItem('token') |
|||
localStorage.removeItem('tokenExpiration') |
|||
} |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save