Netlify on tehokas alusta modernien verkkoprojektien käyttöönottoon ja isännöintiin, tarjoten saumatonta Git-integraatiota, automatisoituja rakennelmia ja serverless-toimintoja nopeaa ja skaalautuvaa kehitystyötä varten.
Tässä kattavassa oppaassa opit:
Toteuttamaan autentikaation yksisivuisessa sovelluksessa (SPA) käyttäen Logtoa Netlifyssä, esimerkkinä Vite + React
Suojaamaan Netlify-serverless-toiminnot Logto-autentikaation avulla
Logton päätepiste (löytyy "Endpoints & Credentials" -osiosta, tyypillisesti muodossa https://<your-instance>.logto.app/)
Nämä tunnukset ovat vaadittuja seuraavissa vaiheissa.
Huomaa, että demossamme käytämme /callback-reittiä käsittelemään Logton kirjautumisen uudelleenohjausta. Uudelleenohjaus-URI:t Logtossa on määritettävä https://<your-site-name>.netlify.app/callback.
Kun käyttäjät kirjautuvat ulos, palaamme kotisivulle, joten asetamme kirjautumisen jälkeiset uudelleenohjaus-URI:t https://<your-site-name>.netlify.app.
Määritä sitten luodun Logto-applikaation tiedot Netlifyn ympäristömuutujiin (Verkkosivustosi -> sivuston asetukset -> Ympäristömuuttujat):
Sitten käytämme näitä konfiguraatioita frontend-projektissamme:
Huomaa, että kun otamme käyttöön Netlifyssä ja kirjaudumme sisään Logton kautta, URL-mme ei automaattisesti uudelleenohjaa Callback-sivullemme. Tämä johtuu siitä, että Netlify ei oletuksena tue asiakaspohjaista reititystä yksisivuisissa sovelluksissa (SPA).
Kun vierailet poluilla kuten /callback, Netlify yrittää löytää vastaavat tiedostot palvelimelta, sen sijaan että se ohjaisi pyynnön React-sovellukseesi.
Tässä vaiheessa meidän on luotava _redirects-tiedosto julkiseen hakemistoon Netlify-projektistasi kertomaan Netlifylle uudelleenohjata kaikki pyynnöt index.html-tiedostoon:
Vaihtoehtoisesti voit luoda netlify.toml-tiedoston projektisi juureen:
Netlify Functions tarjoaa yksinkertaisen mutta tehokkaan tavan rakentaa backend-API:ita. Netlify Functionsin avulla voimme kirjoittaa palvelinpuolen logiikkaa ilman huolta perinteisestä palvelimen konfiguraatiosta ja ylläpidosta.
Nämä toiminnot ovat versioituja, rakennettuja, ja otettu käyttöön yhdessä verkkosivustosi kanssa, tehden frontendin ja backendin kehitys- ja käyttöönottoprosessista saumatonta.
Aloitetaan backend-API:iden rakentaminen käyttämällä Netlify-toimintoja.
Ensin meidän on luotava functions-hakemisto projektin netlify-hakemiston alle ja sitten luotava hello.ts-tiedosto:
Kun vierailemme https://<your-site-name>.netlify.app/.netlify/functions/hello, tämä toiminto kutsutaan ja palauttaa "Hello world!"".
Jos mielestäsi polku /.netlify/functions/hello näyttää hieman oudolta, voit asettaa uudelleenohjauksen kutsumaan toimintoa lisäämällä uudelleenohjaussäännön public/_redirects-tiedostoon:
Tällä tavalla, kun vierailemme https://<your-site-name>.netlify.app/api/hello, se kutsuu toimintoa ja palauttaa "Hello world!". Tämä on itse asiassa yleinen tapa rakentaa API:ita käyttämällä Netlify-toimintoja.
Ja voimme käyttää tätä API:ia frontend-projektissamme käyttäen fetch-komentoa:
Nyt kun meillä on backend-API, meidän on varmistettava, että vain todennetut käyttäjät voivat käyttää sitä. Suojaamme Netlify-toimintomme Logton autentikaatiomekanismilla.
Suojaa API-päätepisteemme:
Luo API Resource Logto Consolessa edustamaan backend-API:amme:
Mene "API Resources"-kohtaan Logto Consolessa ja luo uusi API
Aseta nimi ja API-tunniste (esim. https://api.backend.com)
Huomaa API-tunniste API-resurssin yksityiskohtasivulta, tarvitsemme sen myöhemmin
Konfiguroi sovelluksesi käyttämään tätä API-resurssia lisäämällä tunniste Netlify-ympäristömuuttujiin:
Päivitä Logto-konfiguraatiosi sisältämään tämä API-resurssi:
Kun teet pyyntöjä suojatuille päätepisteille, käyttöliittymäsi täytyy sisältää kelvollinen käyttöoikeustunnus. Näin voit pyytää ja käyttää sitä:
Nyt toteutamme tunnuksen validoimisen backendissämme varmistaaksemme, että vain pyynnöt, joissa on kelvollinen käyttöoikeustunnus, käsitellään.
Ensin meidän täytyy asentaa jose-riippuvuus, joka auttaa meitä tarkistamaan JWT-tunnuksen:
Sitten voimme toteuttaa tunnuksen validoimisen backendissamme:
Nyt, päivitetään Netlify-toimintoamme käyttämään verifyLogtoToken-funktiota:
Siinä kaikki! Nyt Netlify-toimintomme on suojattu Logton avulla ja vain pyynnöt, joissa on kelvollinen käyttöoikeustunnus, käsitellään.
Tässä oppaassa esitetään, kuinka integroida Logto-autentikaatio verkkosovellukseen, joka on otettu käyttöön Netlifyssä.
Konfiguroimalla Logto-käyttäjä- ja API-resursseja, toteutimme frontend-autentikaation ja suojatut Netlify-toimintopäätteen.
Tarkempaa pääsynhallintaa varten voit hyödyntää Logton RBAC (Role-Based Access Control) ominaisuuksia määrittelemällä rooleja ja oikeuksia Logto Consolessa ja validoimalla käyttäjärooleja Netlify Functionsissa.