mirror of
https://github.com/filebrowser/filebrowser.git
synced 2026-07-28 18:23:38 +00:00
Former-commit-id: 068e447a6332149f7c621da924100bacc5a02752 [formerly 80b5e008e56b9c48ccc0450effabc7f33dfd20b4] [formerly 0f8b405cb136355711970a9d9f3f1210272101ca [formerly 85e01a67c3]]
Former-commit-id: 03a1448741f695e2d5c681a11d9dcdca750ff61d [formerly 218dd8e95058a02cafee341dc2330c0a700972df]
Former-commit-id: 0d7ebe389f3e640f6a0102e8a4b5a28e395842c0
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
import cookie from './cookie'
|
|
import store from '@/store/store'
|
|
import router from '@/router'
|
|
|
|
function parseToken (token) {
|
|
document.cookie = `auth=${token}; max-age=86400; path=${store.state.baseURL}`
|
|
let res = token.split('.')
|
|
let user = JSON.parse(window.atob(res[1]))
|
|
store.commit('setUser', user)
|
|
}
|
|
|
|
function loggedIn () {
|
|
return new Promise((resolve, reject) => {
|
|
let request = new window.XMLHttpRequest()
|
|
request.open('GET', `${store.state.baseURL}/api/auth/renew`, true)
|
|
request.setRequestHeader('Authorization', `Bearer ${cookie('auth')}`)
|
|
|
|
request.onload = () => {
|
|
if (request.status === 200) {
|
|
parseToken(request.responseText)
|
|
resolve()
|
|
} else {
|
|
reject()
|
|
}
|
|
}
|
|
request.onerror = () => reject()
|
|
request.send()
|
|
})
|
|
}
|
|
|
|
function login (user, password) {
|
|
let data = {username: user, password: password}
|
|
return new Promise((resolve, reject) => {
|
|
let request = new window.XMLHttpRequest()
|
|
request.open('POST', `${store.state.baseURL}/api/auth/get`, true)
|
|
|
|
request.onload = () => {
|
|
if (request.status === 200) {
|
|
parseToken(request.responseText)
|
|
resolve()
|
|
} else {
|
|
reject(request.responseText)
|
|
}
|
|
}
|
|
request.onerror = () => reject()
|
|
request.send(JSON.stringify(data))
|
|
})
|
|
}
|
|
|
|
function logout () {
|
|
document.cookie = `auth='nothing'; max-age=0; path=${store.state.baseURL}`
|
|
router.push({path: 'login'})
|
|
}
|
|
|
|
export default {
|
|
loggedIn: loggedIn,
|
|
login: login,
|
|
logout: logout
|
|
}
|