handle a lot of error, make all responsive
This commit is contained in:
parent
921e53d864
commit
15966f3730
10
src/App.vue
10
src/App.vue
@ -16,11 +16,6 @@
|
|||||||
command:() => router.push({name:'home'}),
|
command:() => router.push({name:'home'}),
|
||||||
icon: 'pi pi-home',
|
icon: 'pi pi-home',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label:'Logout',
|
|
||||||
command:() => logout(),
|
|
||||||
icon:'pi pi-sign-out',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label:userInfo.value ? userInfo.value.username : 'Profil',
|
label:userInfo.value ? userInfo.value.username : 'Profil',
|
||||||
command:() => router.push({name:'login'}),
|
command:() => router.push({name:'login'}),
|
||||||
@ -31,6 +26,11 @@
|
|||||||
command:() => router.push({name:'swagger'}),
|
command:() => router.push({name:'swagger'}),
|
||||||
icon:'pi pi-cog',
|
icon:'pi pi-cog',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label:'Logout',
|
||||||
|
command:() => logout(),
|
||||||
|
icon:'pi pi-sign-out',
|
||||||
|
},
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
return [
|
return [
|
||||||
|
18
src/api.js
18
src/api.js
@ -52,15 +52,20 @@ const refreshAccessToken = async () => {
|
|||||||
console.error('Refresh token request failed:', error);
|
console.error('Refresh token request failed:', error);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
api.interceptors.response.use(
|
api.interceptors.response.use(
|
||||||
(response) => response,
|
(response) => response,
|
||||||
async (error) => {
|
async (error) => {
|
||||||
if (error.response && error.response.status === 401) {
|
if (error.response && error.response.status === 401) {
|
||||||
const [newAccessToken,newRefreshToken] = await refreshAccessToken();
|
const errorMessage = error.response.data.detail;
|
||||||
if (newAccessToken) {
|
if (errorMessage === "No active account found with the given credentials") {
|
||||||
Cookies.set('refresh', newRefreshToken,{
|
return Promise.reject(error);
|
||||||
|
} else {
|
||||||
|
const tokens = await refreshAccessToken();
|
||||||
|
if (tokens) {
|
||||||
|
const [newAccessToken, newRefreshToken] = tokens;
|
||||||
|
Cookies.set('refresh', newRefreshToken, {
|
||||||
expires: 1,
|
expires: 1,
|
||||||
secure: true,
|
secure: true,
|
||||||
sameSite: 'strict',
|
sameSite: 'strict',
|
||||||
@ -69,8 +74,7 @@ api.interceptors.response.use(
|
|||||||
return api(error.config);
|
return api(error.config);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
// const response = await api.post('/users', userData, {
|
|
||||||
// headers: {Authorization: `Bearer ${sessionStorage.getItem('access_token')}`},);
|
|
@ -1,6 +1,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { createUser, loginUser,getuserinfo } from '../api.js';
|
import { createUser, loginUser, getuserinfo } from '../api.js';
|
||||||
import { useToast } from 'primevue/usetoast';
|
import { useToast } from 'primevue/usetoast';
|
||||||
import PMessage from 'primevue/message';
|
import PMessage from 'primevue/message';
|
||||||
import { useAuth } from '../composables/useAuth.js';
|
import { useAuth } from '../composables/useAuth.js';
|
||||||
@ -26,9 +26,9 @@ async function make_user() {
|
|||||||
email: emailRegister.value,
|
email: emailRegister.value,
|
||||||
password: passwordRegister.value,
|
password: passwordRegister.value,
|
||||||
});
|
});
|
||||||
toast.add({ severity: 'success', summary: 'Succès', detail: 'Utilisateur créé !' });
|
|
||||||
isAuth.value = true;
|
isAuth.value = true;
|
||||||
userInfo.value = await getuserinfo();
|
userInfo.value = await getuserinfo();
|
||||||
|
toast.add({ severity: 'success', summary: 'Succès', detail: 'Utilisateur créé !' });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response && error.response.data) {
|
if (error.response && error.response.data) {
|
||||||
const data = error.response.data;
|
const data = error.response.data;
|
||||||
@ -57,6 +57,9 @@ async function login() {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response && error.response.data) {
|
if (error.response && error.response.data) {
|
||||||
const data = error.response.data;
|
const data = error.response.data;
|
||||||
|
if (data.detail) {
|
||||||
|
toast.add({ severity: 'error', summary: 'Erreur', detail: data.detail });
|
||||||
|
}
|
||||||
if (data.username) {
|
if (data.username) {
|
||||||
loginErrors.value.username = data.username[0];
|
loginErrors.value.username = data.username[0];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user