Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto · Oppitunti

Suojatut reitit ja middleware

Opettele suojaamaan API-päätepisteet toteuttamalla middleware, joka validoi JWT-tunnukset ja rajoittaa pääsyn todennetuille käyttäjille.

Oppitunti 3/411 vaihetta

Suojatut reitit ja middleware on ilmainen Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto-kurssilla on yhteensä 4 oppituntia.

Digitaalisten ovienne suojaaminen

Kuvitelkaa VIP-lounge. Eihän sinne voi vain kävellä kuka tahansa? Jotkin sovelluksen osat, kuten käyttäjän profiili tai asetukset, ovat samanlaisia kuin VIP-lounge. Ne sisältävät arkaluonteisia tietoja tai mahdollistavat kriittisiä toimintoja.

Näitä kutsutaan suojatuiksi reiteiksi. Ne varmistavat, että vain todennetut ja käyttöoikeutetut käyttäjät voivat käyttää tiettyjä resursseja tai suorittaa tiettyjä toimintoja. Ilman niitä kuka tahansa voisi mahdollisesti tarkastella tai muuttaa arkaluonteisia käyttäjätietoja.

API:n vartija: middleware

Miten näitä reittejä suojataan? Tässä middleware tulee avuksi!

Middleware-funktiot ovat kuin vartijoita, jotka seisovat asiakkaan pyynnön ja palvelimen reittikäsittelijän välissä. Ne voivat tarkastella tai muokata pyyntöjä tai jopa lopettaa ne ennen kuin ne saavuttavat lopullisen määränpäänsä.

Ajatelkaa sitä tarkastuspisteenä. Jokaisen pyynnön on kuljettava sen kautta, ja middleware päättää, saako pyyntö jatkaa.

Middlewaren toimintakulku

Middleware sijoittuu suoraan pyyntö–vastaus-kiertoon. Kun pyyntö saapuu palvelimelle, se kulkee ensin määritettyjen middleware-funktioiden läpi yksi kerrallaan.

  • Kaappaus: Middleware kaappaa saapuvan pyynnön.
  • Käsittely: Se suorittaa oman logiikkansa (esimerkiksi lokituksen, todentamisen tai tietojen jäsentämisen).
  • Eteenpäin välittäminen: Jos kaikki tarkistukset läpäistään, se käyttää erityistä funktiota (usein nimeltään next()) siirtääkseen hallinnan seuraavalle middle­warelle tai lopulliselle reittikäsittelijälle.
  • Estäminen: Jos tarkistus epäonnistuu (esimerkiksi käyttäjällä ei ole käyttöoikeutta), middleware voi lähettää vastauksen suoraan ja estää pyynnön etenemisen.

Middlewaren ensimmäiset vaiheet

Tarkastellaan perusesimerkkiä. Seuraava yksinkertainen Node.js Express -middleware kirjaa pyynnöt. Huomaa next()-funktio – se on ratkaisevan tärkeä hallinnan siirtämisessä.

Kokeilkaa suorittaa tämä esimerkki ja katsokaa konsolin tulostetta!

const express = require('express');
const app = express();

// Define our simple logging middleware
function requestLogger(req, res, next) {
  console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
  next(); // Crucial: pass control to the next handler
}

// Apply the middleware to all incoming requests
app.use(requestLogger);

// Define a simple route
app.get('/', (req, res) => {
  res.send('Hello from the server!');
});

const PORT = 3000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));

Todennustunnisteen etsiminen

Todentamista varten middlewaren on löydettävä asiakkaan lähettämä JSON Web Token (JWT). JWT:t lähetetään yleensä HTTP-pyynnön Authorization-otsakkeessa käyttäen Bearer-järjestelmää.

Se näyttää tältä: Authorization: Bearer YOUR_JWT_TOKEN_HERE

Middlewaren ensimmäinen tehtävä on poimia tämä tunniste pyynnön otsakkeista.

Tunnisteen aitouden tarkistaminen

Kun tunniste on hallussamme, se on tarkistettava. Tämä tehdään tarkistamalla sen allekirjoitus allekirjoittamiseen käytetyllä salaisella avaimella. Jos tunnisteen allekirjoitus on kelvollinen, tiedämme, ettei sitä ole muutettu.

Seuraavassa näytetään, miten tunnisteen voisi tarkistaa yleisellä kirjastolla (kuten jsonwebtoken-kirjastolla Node.js:ssä). Tässä esimerkissä kelvollinen tunniste simuloidaan.

const jwt = require('jsonwebtoken'); // npm install jsonwebtoken

const SECRET_KEY = 'my_super_secret_key'; // Keep this secure in real apps!
const mockPayload = { id: 'user123', username: 'alice' };

// 1. Create a mock token (what a login endpoint would generate)
const mockToken = jwt.sign(mockPayload, SECRET_KEY, { expiresIn: '1h' });
console.log('Generated Token:', mockToken);

// 2. Verify the token in our middleware
jwt.verify(mockToken, SECRET_KEY, (err, user) => {
  if (err) {
    console.log('Token verification failed:', err.message);
  } else {
    console.log('Token is valid! User:', user);
    // In a real middleware, you'd attach 'user' to req object
  }
});

Käyttöoikeuden epääminen

Mitä jos tunniste puuttuu tai on virheellinen? Middleware-komponenttimme on palautettava virhe ja estettävä pyynnön pääsy suojatulle reitille.

  • Puuttuva tunniste: Jos Authorization-otsaketta tai tunnistetta ei löydy, palautetaan tila 401 Unauthorized.
  • Virheellinen tunniste: Jos tunniste on olemassa mutta virheellisesti muodostettu, vanhentunut tai sen allekirjoitus on virheellinen, palautetaan tila 403 Forbidden.

Tämä on tietoturvan kannalta ratkaisevan tärkeää!

Käyttäjätietojen välittäminen

Jos JWT:n varmennus onnistuu, sen hyötykuorma sisältää käyttäjätietoja (kuten user ID-tunnisteen, käyttäjänimen ja niin edelleen). Middleware-komponenttimme voi poimia nämä tiedot ja liittää ne pyyntöolioon.

Tämä tarkoittaa, että suojatun reitin myöhemmällä reitinkäsittelijällä on suora pääsy todennetun käyttäjän tietoihin ilman, että tunnistetta tarvitsee jäsentää uudelleen.

Esimerkki: req.user = decodedPayload;

Täydellinen todennus-middleware

Tässä on täydellinen Node.js Express -määritys, jossa käytetään todennus-middleware-komponenttiamme. Huomaa, miten authenticateToken liitetään reitille /profile, jolloin reitti suojataan.

Suorittakaa tämä. Kokeilkaa käyttää reittiä /profile ensin ilman tunnistetta ja sitten kelvollisella tunnisteella (Skenestä 6).

const express = require('express');
const jwt = require('jsonwebtoken'); // npm install jsonwebtoken
const app = express();

const SECRET_KEY = 'my_super_secret_key'; // Use env vars in production!

// Middleware to authenticate JWT
function authenticateToken(req, res, next) {
  const authHeader = req.headers['authorization'];
  const token = authHeader && authHeader.split(' ')[1]; // Bearer TOKEN

  if (token == null) {
    return res.status(401).send('Access Denied: No token provided');
  }

  jwt.verify(token, SECRET_KEY, (err, user) => {
    if (err) {
      return res.status(403).send('Access Denied: Invalid token');
    }
    req.user = user; // Attach user payload to request
    next(); // Pass to the next handler/route
  });
}

// An unprotected public route
app.get('/public', (req, res) => {
  res.send('This is a public route. No authentication needed.');
});

// A protected route
app.get('/profile', authenticateToken, (req, res) => {
  res.json({
    message: `Welcome to your profile, ${req.user.username}!`, 
    userId: req.user.id
  });
});

const PORT = 3000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));

Middleware-tarkistuspiste

Ajatelkaa todennus-middleware-komponenttia, jonka tarkoitus on suojata reitti. Mikä on next()-kutsun ensisijainen tarkoitus middleware-funktion sisällä?

Oppitunnin yhteenveto: suojatut reitit

Hienoa työtä! Tässä oppitunnissa opitte suojaamaan ohjelmointirajapinnan päätepisteet suojatuilla reiteillä.

  • Tutkimme, miten middleware toimii välikätenä ja tarkastaa pyynnöt ennen kuin ne saavuttavat sovelluksen arkaluonteiset osat.
  • Näitte, miten toteutetaan todennus-middleware, joka poimii ja validoi JWT-tunnisteet saapuvista pyynnöistä.
  • Käsittelimme puuttuvat ja virheelliset tunnisteet lähettämällä asianmukaiset virhevastaukset (401, 403).
  • Lopuksi opitte liittämään todennetun käyttäjän tiedot pyyntöolioon ja käyttämään tätä middleware-komponenttia tietyillä reiteillä, jotta vain valtuutetut käyttäjät voivat käyttää niitä.

Ohjelmointirajapintanne on nyt paljon turvallisempi!

Aloita maksutta

Opi Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Suojatut reitit ja middleware” ilmainen?

Kyllä – oppitunnin ”Suojatut reitit ja middleware” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto-kurssin, päivitä CoddyKit PROhon. Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Suojatut reitit ja middleware”?

Opettele suojaamaan API-päätepisteet toteuttamalla middleware, joka validoi JWT-tunnukset ja rajoittaa pääsyn todennetuille käyttäjille. Harjoittelet Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Suojatut reitit ja middleware”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto-oppitunnilla?

Kyllä. Jokainen Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Käyttäjän rekisteröinti ja hajautus
  2. Kirjautuminen ja JWT:n luonti
  3. Suojatut reitit ja middleware
  4. Salasanan palautus ja sähköpostin vahvistus
← Takaisin: Tekoälypohjainen SaaS: Stripe + tunnistautuminen + laskutus + käyttöönotto