mirror of
https://github.com/ajurna/cbwebreader.git
synced 2025-12-06 06:17:17 +00:00
library bumps
fix for LoginView.vue reloading instead of logging in. improved errors for login failing misc cleanup.
This commit is contained in:
1142
frontend/package-lock.json
generated
1142
frontend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ async function get_access_token() {
|
|||||||
let refresh = jwtDecode(store.state.jwt.refresh)
|
let refresh = jwtDecode(store.state.jwt.refresh)
|
||||||
if (access.exp - Date.now()/1000 < 5) {
|
if (access.exp - Date.now()/1000 < 5) {
|
||||||
if (refresh.exp - Date.now()/1000 < 5) {
|
if (refresh.exp - Date.now()/1000 < 5) {
|
||||||
await router.push({name: 'login', params: { username: 'eduardo' }})
|
await router.push({name: 'login'})
|
||||||
return null
|
return null
|
||||||
} else {
|
} else {
|
||||||
return store.dispatch('refreshToken').then(() => {return store.state.jwt.access})
|
return store.dispatch('refreshToken').then(() => {return store.state.jwt.access})
|
||||||
@@ -22,9 +22,9 @@ const axios_jwt = axios.create();
|
|||||||
axios_jwt.interceptors.request.use(async function (config) {
|
axios_jwt.interceptors.request.use(async function (config) {
|
||||||
let access_token = await get_access_token().catch(() => {
|
let access_token = await get_access_token().catch(() => {
|
||||||
if (router.currentRoute.value.fullPath.includes('login')){
|
if (router.currentRoute.value.fullPath.includes('login')){
|
||||||
router.push({name: 'login'})
|
router.push({name: 'login'})
|
||||||
}else {
|
}else {
|
||||||
router.push({name: 'login', query: { next: router.currentRoute.value.fullPath }})
|
router.push({name: 'login', query: { next: router.currentRoute.value.fullPath }})
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
@@ -32,9 +32,9 @@ axios_jwt.interceptors.request.use(async function (config) {
|
|||||||
Authorization: "Bearer " + access_token
|
Authorization: "Bearer " + access_token
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}, function (error) {
|
}, function (error) {
|
||||||
// Do something with request error
|
// Do something with request error
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
});
|
});
|
||||||
|
|
||||||
export default axios_jwt
|
export default axios_jwt
|
||||||
|
|||||||
@@ -73,14 +73,22 @@ export default createStore({
|
|||||||
if ('next' in router.currentRoute.value.query) {
|
if ('next' in router.currentRoute.value.query) {
|
||||||
router.push(router.currentRoute.value.query.next)
|
router.push(router.currentRoute.value.query.next)
|
||||||
} else {
|
} else {
|
||||||
router.push('/')
|
router.push('browse')
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
.catch((error)=>{
|
.catch((error)=>{
|
||||||
// console.log(error);
|
|
||||||
const $toast = useToast();
|
const $toast = useToast();
|
||||||
$toast.error(error.response.data.detail, {position:'top'});
|
if (error.response.data.detail) {
|
||||||
|
$toast.error(error.response.data.detail, {position:'top'});
|
||||||
|
}
|
||||||
|
if (error.response.data.username) {
|
||||||
|
$toast.error("Username: " + error.response.data.username, {position:'top'});
|
||||||
|
}
|
||||||
|
if (error.response.data.password) {
|
||||||
|
$toast.error("Password: " + error.response.data.password, {position:'top'});
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
refreshToken(){
|
refreshToken(){
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<div class="row" v-if="!initialSetupRequired">
|
<div class="row" v-if="!initialSetupRequired">
|
||||||
<div class="col col-lg-4" />
|
<div class="col col-lg-4" />
|
||||||
<div class="col col-lg-4" id="login-col">
|
<div class="col col-lg-4" id="login-col">
|
||||||
<form @submit="login">
|
<form @submit="login" v-on:submit.prevent="onSubmit">
|
||||||
<label class="form-label" for="username">Username</label>
|
<label class="form-label" for="username">Username</label>
|
||||||
<input id="username" placeholder="username" aria-describedby="loginFormControlInputHelpInline" class="form-control" type="text" v-model="username" />
|
<input id="username" placeholder="username" aria-describedby="loginFormControlInputHelpInline" class="form-control" type="text" v-model="username" />
|
||||||
<div class="form-text" id="loginFormControlInputHelpInline">Please enter your username</div>
|
<div class="form-text" id="loginFormControlInputHelpInline">Please enter your username</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user