Prace s mapou, refresh tokenu (tak nejak), uprava vypisu POI, pridani breadcrumbs

This commit is contained in:
Michal Kváček
2023-07-29 23:26:51 +02:00
parent 864db6c6a2
commit 09d2f25523
42 changed files with 597 additions and 241 deletions
+31 -30
View File
@@ -4,31 +4,42 @@ import {api} from "boot/axios";
export const useUserStore = defineStore('LoggedUser', {
state: () => ({
user: {},
accessToken: null
}),
actions: {
setAccessToken(token) {
console.log(token);
if (token) {
localStorage.setItem("accessToken", token);
}
this.accessToken = localStorage.getItem("accessToken");
setTokens({access_token, access_token_validity}) {
const now = new Date().getTime() / 1000;
localStorage.setItem("accessToken", access_token);
localStorage.setItem("accessTokenValidity", now + access_token_validity);
},
getAccessToken() {
if (!this.accessToken) {
this.setAccessToken();
const tokenValidity = localStorage.getItem("accessTokenValidity");
const now = new Date().getTime() / 1000;
if (tokenValidity < now) {
localStorage.removeItem("accessToken");
localStorage.removeItem("accessTokenValidity");
}
return this.accessToken;
return localStorage.getItem(`accessToken`);
},
async setupCredentials() {
// TODO: aktualne se vola s kazdym prechodem mezi routami, to je urcite zbytecne!
await api.get("/me").then(({data}) => {
setupCredentials() {
return api.get("/me").then(({data}) => {
this.user = data;
}).catch(e => {
console.log(e);
return this.user;
}).catch(async ({response}) => {
console.log(response);
return response;
});
},
async refreshAccessToken() {
return api.post("/refresh").then(({data}) => {
this.setTokens(data);
return data.access_token;
});
},
@@ -40,25 +51,15 @@ export const useUserStore = defineStore('LoggedUser', {
},
async login(formData) {
return api.post("/login", formData).then(response => {
const data = response.data;
console.log("data", data);
this.setAccessToken(data.access_token);
return api.post("/login", formData).then(({data}) => {
this.setTokens(data);
this.user = data.user;
})
// console.log("login", username, password);
// Object.assign(this.user, {
// id: 1,
// email: "michal@kvacek.cz",
// name: "Michal K.",
// accessToken: "abcdef",
// avatarImageUrl: "https://via.placeholder.com/50x50"
// });
},
logout() {
Object.assign(this.user, {});
localStorage.removeItem("accessToken");
localStorage.removeItem("accessTokenValidity");
}
}
})