Quantcast
Channel: Active questions tagged svelte - Stack Overflow
Viewing all articles
Browse latest Browse all 1541

Svelte: Hooks.js file is not getting recently created cookies

$
0
0

Someone knows why my hooks.js file not getting recently created cookies

When I do login with discord api in my svelte website, the cookies are created and the hooks only get it minutes after.

Someone can help me please?.....I'm using parts of the medium discord Oauth2 svelte example

   import cookie from 'cookie';const DISCORD_API_URL = import.meta.env.VITE_DISCORD_API_URL;const HOST = import.meta.env.VITE_HOST;/** @type {import('@sveltejs/kit').GetSession} */export async function getSession(req) {  const cookies = cookie.parse(req.request.headers.get("cookie") || '');  console.log(cookies)  // if only refresh token is found, then access token has expired. perform a refresh on it.  if (cookies.disco_refresh_token && !cookies.disco_access_token) {    console.log("Tem o refresh mas não tem o acess")    const discord_request = await fetch(`${HOST}/api/refresh?code=${cookies.disco_refresh_token}`);    const discord_response = await discord_request.json();    if (discord_response.disco_access_token) {      console.log('setting discord user via refresh token..')      const request = await fetch(`${DISCORD_API_URL}/users/@me`, {        headers: { 'Authorization': `Bearer ${discord_response.disco_access_token}` }      });      const response = await request.json();      if (response.id) {        return {          user: {            // only include properties needed client-side —            // exclude anything else attached to the user            // like access tokens etc            ...response          }        }      }    }  }  if (cookies.disco_access_token) {    console.log('setting discord user via access token..')    const request = await fetch(`${DISCORD_API_URL}/users/@me`, {      headers: { 'Authorization': `Bearer ${cookies.disco_access_token}`}    });    // returns a discord user if JWT was valid    const response = await request.json();    if (response.id) {      return {        user: {          ...response        }      }    }  }  // not authenticated, return empty user object  return {    user: false  }}

My Auth callback file:

const DISCORD_CLIENT_ID = import.meta.env.VITE_DISCORD_CLIENT_ID;const DISCORD_CLIENT_SECRET = import.meta.env.VITE_DISCORD_CLIENT_SECRET;const DISCORD_REDIRECT_URI = import.meta.env.VITE_DISCORD_REDIRECT_URI;/** * @type {import('@sveltejs/kit').RequestHandler} */export async function get({ url }) {  // fetch returnCode set in the URL parameters.  const returnCode = url.searchParams.get("code");  console.log('returnCode =>', returnCode);  // initializing data object to be pushed to Discord's token endpoint.  // the endpoint returns access & refresh tokens for the user.  const dataObject = {    client_id: DISCORD_CLIENT_ID,    client_secret: DISCORD_CLIENT_SECRET,    grant_type: 'authorization_code',    redirect_uri: DISCORD_REDIRECT_URI,    code: returnCode,    scope: 'identify email guilds'  };  // performing a Fetch request to Discord's token endpoint  const request = await fetch('https://discord.com/api/oauth2/token', {    method: 'POST',    body: new URLSearchParams(dataObject),    headers: { 'Content-Type': 'application/x-www-form-urlencoded' }  });  const response = await request.json();  console.log(response)  if (response.error) {    console.log('redirect to / due error');    return {      headers: { Location: '/' },      status: 302    }  }  // redirect user to front page with cookies set  const access_token_expires_in = new Date(Date.now() + response.expires_in); // 10 minutes  const refresh_token_expires_in = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000); // 30 days  console.log('redirect to /logged with cookies');  return {    headers: {'set-cookie': [        `disco_access_token=${response.access_token}; Path=/; HttpOnly; SameSite=Strict; Expires=${access_token_expires_in}}`,        `disco_refresh_token=${response.refresh_token}; Path=/; HttpOnly; SameSite=Strict; Expires=${refresh_token_expires_in}`,      ],      Location: '/'    },    status: 302  }}

Viewing all articles
Browse latest Browse all 1541

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>