Je možné mít chráněné trasy v Remix.spustit, takže prohlížeč nemá chráněné zdrojový kód?

0

Otázka

Je možné mít chráněných tras v Remix.spustit Reagují rámec, tak, že pouze admin uživatelé získat chráněné složky, zatímco běžní uživatelé nedostanou součástí chráněných jako součást JS svazku odeslána do prohlížeče?

Také, to může vyžadovat formu kódu, rozdělení na přední straně straně. Je kód rozdělení podporovány v Remix.run?

node.js react-router reactjs remix.run
2021-11-23 20:59:32
2

Nejlepší odpověď

2

Můžete chránit cest, díky kterým se uživatel uvnitř loader Trasy, tam jste se mohli rozhodnout ji přesměrovat jinam, nebo poslat vlajku jako součást loader dat, takže UI může skrýt/zobrazit součásti na něm založených.

Pro kód rozdělení, Remix dělá to na trase úrovni, ale to neznamená, podpora kódu na straně serveru-rozdělení vybalení z krabice, můžete být schopni podpořit reagovat-zatížitelné.

2021-12-01 16:28:03
1

toto je kód úryvek z ukázkové aplikace jsem napsal, toto je domovská stránka a lze přistupovat pouze, pokud uživatel je ověřen.

na redirect(`/login?${searchParams}`) budete přesměrováni, pokud uživatel není ověřen

// Loaders provide data to components and are only ever called on the server, so
// you can connect to a database or run any server side code you want right next
// to the component that renders it.
// https://remix.run/api/conventions#loader
export let loader = async ({ request }) => {
  const redirectTo = new URL(request.url).pathname;

  let session = await getSession(request.headers.get("Cookie"));

  // if there is no access token in the header then
  // the user is not authenticated, go to login
  if (!session.has("access_token")) {
    let searchParams = new URLSearchParams([["redirectTo", redirectTo]]);
    throw redirect(`/login?${searchParams}`);
  } else {
    // otherwise execute the query for the page, but first get token
    const { user, error: sessionErr } = await supabaseClient.auth.api.getUser(
      session.get("access_token")
    );

    // if no error then get then set authenticated session
    // to match the user associated with the access_token
    if (!sessionErr) {
      // activate the session with the auth_token
      supabaseClient.auth.setAuth(session.get("access_token"));

      // now query the data you want from supabase
      const { data: chargers, error } = await supabaseClient
        .from("chargers")
        .select("*");

      // return data and any potential errors alont with user
      return { chargers, error, user };
    } else {
      return { error: sessionErr };
    }
  }
};
2021-12-03 07:10:39

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................