- primo aggiornamento myreccard
- aggiunta sito germogliamo.app - aggiornato login con il parametro "browser_random" che serve per fare un login anche su 2 pagine contemporaneamente.
This commit is contained in:
@@ -68,6 +68,7 @@ async function generateStream(
|
||||
'Content-Type': 'application/json',
|
||||
'x-auth': userStore.x_auth_token,
|
||||
'x-refrtok': userStore.refreshToken,
|
||||
'x-browser-random': userStore.browser_random,
|
||||
},
|
||||
body: JSON.stringify(payload),
|
||||
signal: options?.signal,
|
||||
@@ -137,6 +138,7 @@ async function Request(
|
||||
'Content-Type': isFormData ? 'multipart/form-data' : 'application/json',
|
||||
'x-auth': userStore.x_auth_token,
|
||||
'x-refrtok': userStore.refreshToken,
|
||||
'x-browser-random': userStore.browser_random,
|
||||
},
|
||||
...responsedata,
|
||||
};
|
||||
@@ -214,16 +216,16 @@ async function Request(
|
||||
} else {
|
||||
throw new Error(`Unsupported request type: ${type}`);
|
||||
}
|
||||
const x_auth_token = String(response.headers['x-auth'] || '');
|
||||
|
||||
// Gestione aggiornamento token se necessario
|
||||
const setAuthToken = path === '/updatepwd' || path === '/users/login';
|
||||
//const setAuthToken = path === '/updatepwd' || path === '/users/login';
|
||||
const setAuthToken = !!x_auth_token;
|
||||
if (
|
||||
response &&
|
||||
response.status === 200 &&
|
||||
(setAuthToken || path === '/users/login')
|
||||
response && setAuthToken
|
||||
) {
|
||||
const x_auth_token = String(response.headers['x-auth'] || '');
|
||||
const refreshToken = String(response.headers['x-refrtok'] || '');
|
||||
const browser_random = userStore.getBrowserRandom()
|
||||
if (!x_auth_token) {
|
||||
userStore.setServerCode(toolsext.ERR_AUTHENTICATION);
|
||||
}
|
||||
@@ -232,9 +234,10 @@ async function Request(
|
||||
localStorage.setItem(toolsext.localStorage.token, x_auth_token);
|
||||
localStorage.setItem(toolsext.localStorage.refreshToken, refreshToken);
|
||||
}
|
||||
userStore.setAuth(x_auth_token, refreshToken);
|
||||
userStore.setAuth(x_auth_token, refreshToken, browser_random);
|
||||
localStorage.setItem(toolsext.localStorage.token, x_auth_token);
|
||||
localStorage.setItem(toolsext.localStorage.refreshToken, refreshToken);
|
||||
localStorage.setItem(toolsext.localStorage. browser_random, browser_random);
|
||||
}
|
||||
|
||||
globalStore.setStateConnection('online');
|
||||
|
||||
@@ -156,7 +156,7 @@ export const Api = {
|
||||
const newAccessToken = await this.refreshToken();
|
||||
|
||||
if (newAccessToken) {
|
||||
userStore.setAuth(newAccessToken, userStore.refreshToken);
|
||||
userStore.setAuth(newAccessToken, userStore.refreshToken, userStore.browser_random);
|
||||
|
||||
if (!evitaloop) {
|
||||
console.log('Nuovo token ottenuto. Riprovo la richiesta...');
|
||||
|
||||
@@ -4798,6 +4798,7 @@ export const tools = {
|
||||
return [
|
||||
{ name: 'x-auth', value: userStore.x_auth_token },
|
||||
{ name: 'x-refrtok', value: userStore.refreshToken },
|
||||
{ name: 'x-browser-random', value: userStore.browser_random },
|
||||
];
|
||||
},
|
||||
|
||||
@@ -11417,8 +11418,7 @@ export const tools = {
|
||||
},
|
||||
|
||||
convertinbspInSpazi(str: string) {
|
||||
return str
|
||||
.replace(/ /g, ' ') // Converti in spazi normali
|
||||
return str.replace(/ /g, ' '); // Converti in spazi normali
|
||||
},
|
||||
|
||||
convertinbspInSpaziNormali(str: string) {
|
||||
@@ -11428,6 +11428,13 @@ export const tools = {
|
||||
.trim();
|
||||
},
|
||||
|
||||
getTokenRandom() {
|
||||
// Soluzione 1: Usando Web Crypto API (moderno)
|
||||
const array = new Uint8Array(32);
|
||||
crypto.getRandomValues(array);
|
||||
return Array.from(array, (byte) => byte.toString(16).padStart(2, '0')).join('');
|
||||
},
|
||||
|
||||
// FINE !
|
||||
|
||||
// getLocale() {
|
||||
|
||||
@@ -125,6 +125,7 @@ export const toolsext = {
|
||||
userId: 'uid',
|
||||
token: 'tk',
|
||||
refreshToken: 'rt',
|
||||
browser_random: 'brr',
|
||||
username: 'uname',
|
||||
lastUserLogged: 'lul',
|
||||
name: 'nm',
|
||||
|
||||
@@ -212,6 +212,7 @@ export const useUserStore = defineStore('UserStore', {
|
||||
servercode: 0,
|
||||
resStatus: 0,
|
||||
x_auth_token: '',
|
||||
browser_random: '',
|
||||
refreshToken: '',
|
||||
isLogged: false,
|
||||
isAdmin: false,
|
||||
@@ -993,6 +994,7 @@ export const useUserStore = defineStore('UserStore', {
|
||||
this.isLogged = false;
|
||||
this.x_auth_token = '';
|
||||
this.refreshToken = '';
|
||||
this.browser_random = '';
|
||||
console.log('SBIANCA VUOTO ------------ x_auth_token');
|
||||
|
||||
return true;
|
||||
@@ -1443,6 +1445,7 @@ export const useUserStore = defineStore('UserStore', {
|
||||
access: 'auth',
|
||||
token: this.x_auth_token,
|
||||
refreshToken: this.refreshToken,
|
||||
browser_random: this.browser_random,
|
||||
data_login: tools.getDateNow(),
|
||||
});
|
||||
} catch (e) {
|
||||
@@ -1472,6 +1475,7 @@ export const useUserStore = defineStore('UserStore', {
|
||||
);
|
||||
else tools.localStSetItem(toolsext.localStorage.img, '');
|
||||
localStorage.setItem(toolsext.localStorage.token, this.x_auth_token);
|
||||
localStorage.setItem(toolsext.localStorage.browser_random, this.getBrowserRandom());
|
||||
// console.log('updateLocalStorage: salva refreshtoken', this.refreshToken)
|
||||
localStorage.setItem(toolsext.localStorage.refreshToken, this.refreshToken);
|
||||
localStorage.setItem(
|
||||
@@ -1525,6 +1529,7 @@ export const useUserStore = defineStore('UserStore', {
|
||||
.then((hashedPassword: string) => {
|
||||
authData.lang = mylang;
|
||||
authData.password = String(hashedPassword);
|
||||
authData.br = this.getBrowserRandom();
|
||||
|
||||
this.setServerCode(tools.CALLING);
|
||||
|
||||
@@ -1553,6 +1558,7 @@ export const useUserStore = defineStore('UserStore', {
|
||||
tools.localStSetItem(toolsext.localStorage.name, newuser.name);
|
||||
tools.localStSetItem(toolsext.localStorage.surname, newuser.surname);
|
||||
localStorage.setItem(toolsext.localStorage.token, this.x_auth_token);
|
||||
localStorage.setItem(toolsext.localStorage.browser_random, this.getBrowserRandom());
|
||||
localStorage.setItem(
|
||||
toolsext.localStorage.refreshToken,
|
||||
this.refreshToken
|
||||
@@ -1598,6 +1604,7 @@ export const useUserStore = defineStore('UserStore', {
|
||||
access: 'auth',
|
||||
token: x_auth_token,
|
||||
refreshToken,
|
||||
browser_random: this.getBrowserRandom(),
|
||||
data_login: tools.getDateNow(),
|
||||
};
|
||||
|
||||
@@ -1625,8 +1632,9 @@ export const useUserStore = defineStore('UserStore', {
|
||||
// console.log('setRefreshToken', refreshToken)
|
||||
},
|
||||
|
||||
setAuth(x_auth_token: string, refreshToken: string) {
|
||||
setAuth(x_auth_token: string, refreshToken: string, browser_random: string) {
|
||||
this.x_auth_token = x_auth_token;
|
||||
this.browser_random = browser_random;
|
||||
this.setRefreshToken(refreshToken);
|
||||
},
|
||||
|
||||
@@ -1681,6 +1689,7 @@ export const useUserStore = defineStore('UserStore', {
|
||||
password: authData.password.trim(),
|
||||
lang: this.lang,
|
||||
options,
|
||||
br: this.getBrowserRandom(),
|
||||
};
|
||||
|
||||
if (import.meta.env.VITE_DEBUG === '1') {
|
||||
@@ -1745,6 +1754,7 @@ export const useUserStore = defineStore('UserStore', {
|
||||
|
||||
localStorage.removeItem(toolsext.localStorage.expirationDate);
|
||||
localStorage.removeItem(toolsext.localStorage.token);
|
||||
// localStorage.removeItem(toolsext.localStorage.browser_random);
|
||||
localStorage.removeItem(toolsext.localStorage.userId);
|
||||
localStorage.removeItem(toolsext.localStorage.username);
|
||||
localStorage.removeItem(toolsext.localStorage.name);
|
||||
@@ -1852,10 +1862,11 @@ export const useUserStore = defineStore('UserStore', {
|
||||
|
||||
const token = localStorage.getItem(toolsext.localStorage.token);
|
||||
let refreshToken = localStorage.getItem(toolsext.localStorage.refreshToken);
|
||||
let browser_random = localStorage.getItem(toolsext.localStorage.browser_random);
|
||||
if (!refreshToken) refreshToken = '';
|
||||
|
||||
if (token) {
|
||||
this.setAuth(token, refreshToken);
|
||||
this.setAuth(token, refreshToken, browser_random);
|
||||
if (globalStore.site.confpages?.enableTokenExpired) {
|
||||
if (token && refreshToken) {
|
||||
isLogged = true;
|
||||
@@ -2631,5 +2642,15 @@ export const useUserStore = defineStore('UserStore', {
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
getBrowserRandom() {
|
||||
if (!this.browser_random) {
|
||||
this.browser_random = localStorage.getItem(toolsext.localStorage.browser_random);
|
||||
}
|
||||
if (!this.browser_random) {
|
||||
this.browser_random = tools.getTokenRandom()
|
||||
}
|
||||
return this.browser_random;
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1158,6 +1158,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
others: {
|
||||
userId: userStore.my._id,
|
||||
access: userStore.my.tokens![0].access,
|
||||
browser_random: userStore.getBrowserRandom()
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1182,8 +1183,10 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
async deleteSubscriptionToServer() {
|
||||
console.log('DeleteSubscriptionToServer: ');
|
||||
|
||||
const userStore = useUserStore();
|
||||
|
||||
try {
|
||||
return Api.SendReq('/subscribe/del', 'DELETE', null);
|
||||
return Api.SendReq('/subscribe/del', 'DELETE', {browser_random: userStore.getBrowserRandom()});
|
||||
} catch (e) {
|
||||
console.error('deleteSubscriptionToServer');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user