This commit is contained in:
Andreas Brett 2021-10-26 12:58:04 +02:00
parent 4fc2603818
commit 3f3d8b4eb3
2 changed files with 21 additions and 8 deletions

View File

@ -417,7 +417,7 @@ import TwoFADialog from "../components/TwoFADialog.vue";
dayjs.extend(utc);
dayjs.extend(timezone);
import { timezoneList, setPageLocale } from "../util-frontend";
import { timezoneList, setPageLocale, jwtDecrypt } from "../util-frontend";
import { useToast } from "vue-toastification";
const toast = useToast();
@ -487,11 +487,9 @@ export default {
},
loadUsername() {
const jwtToken = localStorage.getItem("token");
const [, payloadBase64] = jwtToken.match(/^\S+\.(\S+)\.\S+$/i);
const payload = atob(payloadBase64);
const oPayload = JSON.parse(payload);
this.username = oPayload.username;
const jwtToken = this.$root.storage().token;
const jwtPayload = jwtDecrypt(jwtToken);
this.username = jwtPayload.username;
},
loadSettings() {

View File

@ -54,4 +54,19 @@ export function setPageLocale() {
const html = document.documentElement
html.setAttribute('lang', currentLocale() )
html.setAttribute('dir', localeDirection() )
}
}
export function jwtDecrypt(token) {
const base64Url = token.split(".")[1];
const base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/");
const jsonPayload = decodeURIComponent(
atob(base64)
.split("")
.map(function(c) {
return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2);
})
.join("")
);
return JSON.parse(jsonPayload);
}