Docs
Vyhledávání⌘ K
  • Domov
  • O Grafu
  • Podporované sítě
  • Protocol Contracts
  • Podgrafy
    • Substreams
      • Token API
        • AI Suite
          • Indexing
            • Resources
              Podgrafy > How-to Guides

              3 minutes

              Jak zabezpečit klíče API pomocí komponent serveru Next.js

              Přehled

              We can use Next.js server components⁠ to properly secure our API key from exposure in the frontend of our dapp. To further increase our API key security, we can also restrict our API key to certain Subgraphs or domains in Subgraph Studio.

              In this cookbook, we will go over how to create a Next.js server component that queries a Subgraph while also hiding the API key from the frontend.

              Upozornění

              • Součásti serveru Next.js nechrání klíče API před odčerpáním pomocí útoků typu odepření služby.
              • Brány Graf síť mají zavedené strategie detekce a zmírňování odepření služby, avšak použití serverových komponent může tyto ochrany oslabit.
              • Server komponenty Next.js přinášejí rizika centralizace, protože může dojít k výpadku serveru.

              Proč je to důležité

              Ve standardní aplikaci React mohou být klíče API obsažené v kódu frontendu vystaveny na straně klienta, což představuje bezpečnostní riziko. Soubory .env se sice běžně používají, ale plně klíče nechrání, protože kód Reactu se spouští na straně klienta a vystavuje klíč API v hlavičkách. Serverové komponenty Next.js tento problém řeší tím, že citlivé operace zpracovávají na straně serveru.

              Using client-side rendering to query a Subgraph

              Client-side rendering

              Prerequisites

              • Klíč API od Subgraph Studio
              • Základní znalosti Next.js a React.
              • Existující projekt Next.js, který používá App Router⁠.

              Kuchařka krok za krokem

              Krok 1: Nastavení proměnných prostředí

              1. V kořeni našeho projektu Next.js vytvořte soubor .env.local.
              2. Přidejte náš klíč API: API_KEY=<api_key_here>.

              Krok 2: Vytvoření součásti serveru

              1. V adresáři components vytvořte nový soubor ServerComponent.js.
              2. K nastavení komponenty serveru použijte přiložený ukázkový kód.

              Krok 3: Implementace požadavku API na straně serveru

              Do souboru ServerComponent.js přidejte následující kód:

              1const API_KEY = process.env.API_KEY23export default async function ServerComponent() {4  const response = await fetch(5    `https://gateway-arbitrum.network.thegraph.com/api/${API_KEY}/subgraphs/id/HUZDsRpEVP2AvzDCyzDHtdc64dyDxx8FQjzsmqSg4H3B`,6    {7      method: 'POST',8      headers: {9        'Content-Type': 'application/json',10      },11      body: JSON.stringify({12        query: /* GraphQL */ `13          {14            factories(first: 5) {15              id16              poolCount17              txCount18              totalVolumeUSD19            }20          }21        `,22      }),23    },24  )2526  const responseData = await response.json()27  const data = responseData.data2829  return (30    <div>31      <h1>Server Component</h1>32      {data ? (33        <ul>34          {data.factories.map((factory) => (35            <li key={factory.id}>36              <p>ID: {factory.id}</p>37              <p>Pool Count: {factory.poolCount}</p>38              <p>Transaction Count: {factory.txCount}</p>39              <p>Total Volume USD: {factory.totalVolumeUSD}</p>40            </li>41          ))}42        </ul>43      ) : (44        <p>Loading data...</p>45      )}46    </div>47  )48}

              Krok 4: Použití komponenty serveru

              1. V našem souboru stránky (např. pages/index.js) importujte ServerComponent.
              2. Vykreslení komponenty:
              1import ServerComponent from './components/ServerComponent'23export default function Home() {4  return (5    <main>6      <ServerComponent />7    </main>8  )9}

              Krok 5: Spusťte a otestujte náš Dapp

              Spusťte naši aplikaci Next.js pomocí npm run dev. Ověřte, že serverová komponenta načítá data bez vystavení klíče API.

              Server-side rendering

              Závěr

              By utilizing Next.js Server Components, we’ve effectively hidden the API key from the client-side, enhancing the security of our application. This method ensures that sensitive operations are handled server-side, away from potential client-side vulnerabilities. Finally, be sure to explore other API key security measures to increase your API key security even further.

              ⁠Edit on GitHub⁠

              Categorize NFT Marketplaces Using EnumsQuery Polymarket Data
              On this page
              • Přehled
              • Upozornění
              • Proč je to důležité
              • Using client-side rendering to query a Subgraph
              • Prerequisites
              • Kuchařka krok za krokem
              • Krok 1: Nastavení proměnných prostředí
              • Krok 2: Vytvoření součásti serveru
              • Krok 3: Implementace požadavku API na straně serveru
              • Krok 4: Použití komponenty serveru
              • Krok 5: Spusťte a otestujte náš Dapp
              • Závěr
              The GraphStatusTestnetBrand AssetsForumSecurityPrivacy PolicyTerms of Service