fixed sort in profile-reports table and in statistics table, improved error messages, improved metatags by fetching metadata from server

This commit is contained in:
Alibek committed 2024-03-16 02:19:33 +06:00
1 parent 0221a79015
commit 0ba0f1df89
25 files changed
+413 -171

No files matched your search

+51 -17
View File
@@ -19,16 +19,7 @@ const verifyToken = async (access_token: string) => {
};
const refreshToken = async (token: JWT): Promise<JWT> => {
// const date = new Date().toLocaleTimeString();
// const expire = new Date(token.expires_in).toLocaleTimeString();
const verify = await verifyToken(token.access_token);
if (verify) {
return {
...token,
};
}
const UTC = new Date();
const data = {
refresh: token.refresh_token,
@@ -39,10 +30,16 @@ const refreshToken = async (token: JWT): Promise<JWT> => {
data
);
const expirationTime = new Date(UTC.getTime() + 14 * 60000);
expirationTime.setTime(
expirationTime.getTime() +
expirationTime.getTimezoneOffset() * 60 * 1000 * -1
);
return {
...token,
access_token: response.data.access,
expires_in: response.data.expires_at,
expires_in: expirationTime,
};
};
@@ -58,20 +55,37 @@ export const authConfig: AuthOptions = {
},
password: { label: "Password", type: "password" },
},
async authorize(credentials, req) {
async authorize(credentials, req): Promise<any> {
if (!credentials?.email || !credentials?.password)
return null;
const { email, password } = credentials as any;
const { email, password } = credentials;
const data = {
email,
password,
};
const res = await apiInstance.post("/users/login/", data);
const res = await apiInstance.post<ITokens>(
"/users/login/",
data
);
if ([200, 201].includes(res.status)) {
const user = res.data;
const currentTime = new Date();
const expirationTime = new Date(
currentTime.getTime() + 14 * 60000
);
expirationTime.setTime(
expirationTime.getTime() +
expirationTime.getTimezoneOffset() * 60 * 1000 * -1
);
const user = {
refresh_token: res.data.refresh_token,
access_token: res.data.access_token,
expires_in: expirationTime,
};
return user;
}
@@ -105,9 +119,15 @@ export const authConfig: AuthOptions = {
return false;
}
const currentTime = new Date();
const expirationTime = new Date(
currentTime.getTime() + 15 * 60000
);
user.access_token = res.data.access_token;
user.refresh_token = res.data.refresh_token;
user.expires_in = res.data.expires_in;
user.expires_in = expirationTime;
}
return true;
@@ -115,12 +135,26 @@ export const authConfig: AuthOptions = {
async jwt({ token, user }) {
if (user) return { ...token, ...user };
return refreshToken(token);
const UTC = new Date();
const currentTime = new Date(UTC.getTime());
currentTime.setTime(
currentTime.getTime() +
currentTime.getTimezoneOffset() * 60 * 1000 * -1
);
const isValid =
new Date(currentTime).getTime() <=
new Date(token.expires_in).getTime();
if (isValid) return token;
return await refreshToken(token);
},
async session({ token, session }) {
session.access_token = token.access_token;
session.refresh_token = token.refresh_token;
session.expires_in = token.expires_in;
return session;
},
+8
View File
@@ -0,0 +1,8 @@
export interface IMetatag {
id: number;
title: string;
description: string;
keywords: string;
og_image?: string;
page: string;
}