mirror of
https://github.com/sussy-code/smov.git
synced 2024-12-20 14:37:43 +01:00
Add prefixes to tokens
This commit is contained in:
parent
bc51076369
commit
1acc81205a
3 changed files with 15 additions and 7 deletions
|
@ -45,6 +45,7 @@
|
||||||
"i18next": "^22.4.5",
|
"i18next": "^22.4.5",
|
||||||
"immer": "^10.0.2",
|
"immer": "^10.0.2",
|
||||||
"iso-639-1": "^3.1.0",
|
"iso-639-1": "^3.1.0",
|
||||||
|
"jwt-decode": "^4.0.0",
|
||||||
"lodash.isequal": "^4.5.0",
|
"lodash.isequal": "^4.5.0",
|
||||||
"nanoid": "^5.0.4",
|
"nanoid": "^5.0.4",
|
||||||
"node-forge": "^1.3.1",
|
"node-forge": "^1.3.1",
|
||||||
|
|
|
@ -68,6 +68,9 @@ dependencies:
|
||||||
iso-639-1:
|
iso-639-1:
|
||||||
specifier: ^3.1.0
|
specifier: ^3.1.0
|
||||||
version: 3.1.0
|
version: 3.1.0
|
||||||
|
jwt-decode:
|
||||||
|
specifier: ^4.0.0
|
||||||
|
version: 4.0.0
|
||||||
lodash.isequal:
|
lodash.isequal:
|
||||||
specifier: ^4.5.0
|
specifier: ^4.5.0
|
||||||
version: 4.5.0
|
version: 4.5.0
|
||||||
|
@ -4526,6 +4529,11 @@ packages:
|
||||||
resolution: {integrity: sha512-cxQGGUiit6CGUpuuiezY8N4m1wgF4o7127rXEXDFcxeDUFfdV7gSkwA26Fe2wWBiNQq2SZOgN4gSmMxB/StA8Q==}
|
resolution: {integrity: sha512-cxQGGUiit6CGUpuuiezY8N4m1wgF4o7127rXEXDFcxeDUFfdV7gSkwA26Fe2wWBiNQq2SZOgN4gSmMxB/StA8Q==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/jwt-decode@4.0.0:
|
||||||
|
resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/keyv@4.5.3:
|
/keyv@4.5.3:
|
||||||
resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==}
|
resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { MetaOutput, NotFoundError, ScrapeMedia } from "@movie-web/providers";
|
import { MetaOutput, NotFoundError, ScrapeMedia } from "@movie-web/providers";
|
||||||
|
import { jwtDecode } from "jwt-decode";
|
||||||
|
|
||||||
import { mwFetch } from "@/backend/helpers/fetch";
|
import { mwFetch } from "@/backend/helpers/fetch";
|
||||||
import { getTurnstileToken, isTurnstileInitialized } from "@/stores/turnstile";
|
import { getTurnstileToken, isTurnstileInitialized } from "@/stores/turnstile";
|
||||||
|
@ -16,13 +17,11 @@ export function getCachedMetadata(): MetaOutput[] {
|
||||||
|
|
||||||
function getTokenIfValid(): null | string {
|
function getTokenIfValid(): null | string {
|
||||||
if (!token) return null;
|
if (!token) return null;
|
||||||
const parts = token.split(".");
|
|
||||||
if (parts.length !== 3) return null;
|
|
||||||
try {
|
try {
|
||||||
const parsedData = JSON.parse(atob(parts[2]));
|
const body = jwtDecode(token);
|
||||||
if (!parsedData.exp) return token;
|
if (!body.exp) return `jwt|${token}`;
|
||||||
if (Date.now() < parsedData.exp) return token;
|
if (Date.now() / 1000 < body.exp) return `jwt|${token}`;
|
||||||
} catch {
|
} catch (err) {
|
||||||
// we dont care about parse errors
|
// we dont care about parse errors
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
@ -90,7 +89,7 @@ export async function connectServerSideEvents<T>(
|
||||||
// fetch token to use
|
// fetch token to use
|
||||||
let apiToken = getTokenIfValid();
|
let apiToken = getTokenIfValid();
|
||||||
if (!apiToken && isTurnstileInitialized()) {
|
if (!apiToken && isTurnstileInitialized()) {
|
||||||
apiToken = await getTurnstileToken();
|
apiToken = `turnstile|${await getTurnstileToken()}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// insert token, if its set
|
// insert token, if its set
|
||||||
|
|
Loading…
Reference in a new issue