45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
|
|
// utils/tokenHelper.ts
|
|
export async function getAccessToken_client(): Promise<string | null> {
|
|
try {
|
|
// Get userid from sessionStorage (browser) or cookies (server-side)
|
|
let userId: string | null = null;
|
|
|
|
if (typeof window !== "undefined") {
|
|
// On client side
|
|
console.log("Running on client side");
|
|
userId = await sessionStorage.getItem("USERID");
|
|
console.log("Retrieved userId from sessionStorage:", userId);
|
|
} else {
|
|
console.log("Running on server side");
|
|
userId = null;
|
|
// On server side (if needed, adjust as per cookie logic)
|
|
// e.g., you could use cookies-next package
|
|
}
|
|
|
|
if (!userId) {
|
|
console.error("UserId not found in sessionStorage/cookies");
|
|
return null;
|
|
}
|
|
|
|
const response = await fetch("https://ebay.backend.data4autos.com/api/auth/turn14/get-access-token", {
|
|
method: "POST",
|
|
headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify({ userid: userId }),
|
|
});
|
|
|
|
if (!response.ok) {
|
|
console.error("Failed to fetch token:", response.statusText);
|
|
return null;
|
|
}
|
|
|
|
const data = await response.json();
|
|
|
|
// Assuming the API returns { "access_token": "xxxxx" }
|
|
return data?.access_token ?? null;
|
|
} catch (error) {
|
|
console.error("Error fetching token:", error);
|
|
return null;
|
|
}
|
|
}
|