Sovelto PRO
Uusi

PRO Live: Node.js token-pohjainen suojaus

Node.js palvelimet ovat yleistyneet valtavasti. Tyypillisesti jossain vaiheessa palvelin pitää suojatakin, ja siinä Passport on yleisin käytetty kirjasto. Tässä koulutuksessa autentikointi toteutetaan JWT-tokeneilla sekä paikallisella käyttäjähallinnalla, että federoimalla käyttäjähallinta OAuthin avulla GitHubille.

Vaativuus
Arvostelut
179,00 
+ alv./VAT
Sovelto PRO

Pahoittelemme mutta tiedossa ei ole seuraavia kurssipäiviä.
Ole hyvä ja ole yhteydessä myyntiin: 020 7776 670 tai myyntipalvelu@sovelto.fi

Sovelto PRO
Uusi

Koulutuksen kuvaus

Node.js ja Express yhdistelmä on yleisin tapa toteuttaa JavaScriptillä palvelimia. Teoriaa löytyy myös kurssin yhteydessä annettavina linkkeinä, mutta tämä sessio on enemmänkin pitkä koodausdemo miten askel askeleelta saadaan aikaan suojattu palvelin lähtien liikkeelle tyhjästä. Tässä koodaussessiossa otetaan käyttöön useita kirjastoja kuten Passport, jonka avulla palvelimelle saadaan toteutettua autentikointi sekä omalla käyttäjähallinnalla JWT:n (JSON Web Token) avulla, että federoimalla hallinta GitHubille ja käyttämällä OAuth2:sta. Oma käyttäjähallinta toteutetaan hyvin yksinkertaisesti tallettamalla käyttäjätunnus ja salasanasta suolattu tiiviste (hash) SQLite-tietokantaan. Myös GitHubin tunnistamista käyttäjistä talletetaan tarvittava tieto kantaan, mutta luonnollisesti annetaan GitHubin huolehtia varsinaisesta tunnistamisesta.

Vastaavasta aiheesta löytyy verkosta demoja enemmän kuin tarpeeksi, mutta tämä yrittää olla niitä parempi ainakin kahdella tavalla:

  1. Tämä on suomeksi (tosin terminologia ehkä enemmän englanniksi),
  2. tässä toteutetaan toimiva ratkaisu, mutta yritetään koko ajan kertoa miten tässä koulutuksessa valittu ratkaisu voidaan korvata jollakin toisella.

Session vaiheet

  • Palvelin pystyyn
    • Palvelimen runko: express-generator
    • Alustava konfigurointi dotenv ja config-tiedostot
    • Reitityksen muokkausta, palvelimelle tulee signup, login ja logout kaikkien käyttöön sekä pari suojattua reittiä
    • Testejä toiminnallisuuden todentamiseen: jest supertest
  • Oma käyttäjähallinta
    • Otetaan sqlite3 pohjalle, tehdään sille oma Promise-pohjainen rajapinta
    • Toteutetaan käyttäjille taulu, suojataan salasana bcryptjs ja jsonwebtoken kirjastoilla
    • API käyttäjien tietojen hakemiseen (suojataan myöhemmin)
  • Passport ja JWT
    • Otetaan passport mukaan ja konfiguroidaan paikallinen (local) strategia
    • Toteutetaan signup- ja login-toiminnallisuudet
    • Otetaan JWT käyttöön ja passport-jwt strategia
  • GitHub federointi ja OAuth
    • Annetaan GitHubin huolehtia käyttäjähallinnasta
    • Passportin GitHub strategia mukaan: passport-github2
    • Käytetään GitHubin Developer-tunnusta ja toteutetaan autentikointi

Sessiossa on myös keskustelua vaihtoehdoista eri ratkaisuihin, kuten esimerkiksi käyttäjähallinan jonka voisi toteuttaa MongDB:n ja Mongoosen avulla, tai jollakin toisella relaatiokannalla kuin SQLite ja siellä halutessa Sequlize mukana. Demolle on aikaa noin tunti, joten joitakin asioita jätetään pakosta pois, kuten esimerkiksi omien käyttäjien salasanojen palautus tai logoutin parempi toteutus refresh tokenin avulla. Useita koodista pois jätettyjä asioita kuitenkin vähintään sivutaan session aikana.

Esitietoina vaaditaan perusosaaminen Node.js ja Express palvelimen ohjelmoinnista.

 

Avainsanat: , , , ,

 

Paikkoja jäljellä:
Ei paikkarajoitusta
179,00  + alv./VAT

Vastuuhenkilö


Tommi Teräsvirta

Tommi Teräsvirta

Tommi on ohjelmistokehitykseen liittyvän kouluttamisen ja konsultoinnin rautainen ammattilainen. Tommilla kouluttajaura alkoi vuonna 1997 Java-koulutuksilla. Hän on toiminut ohjelmistoalalla useissa haastavissa tehtävissä, mistä saatua kokemusta hän pystyy hyödyntämään niin Full stack Web-kehityksessä kuin sulautettujen järjestelmien ja käyttöjärjestelmien alueilla. Tommilta löytyy sertifioitua osaamista niin Microsoft-ympäristöön, kuin Java ja C++ -kieliinkin liittyen. Lähellä sydäntä ovat myös mobiilit alustat, avoin lähdekoodi ja Linux. Tommi on erittäin pidetty kouluttaja. Hän onnistuu koulutuksissaan innostamaan aiemmin koodausta karttaneen oppilaan koodauksen salojen mielenkiintoiseen maailmaan. Tommi on konsultoinut ja kouluttanut niin koti- kuin ulkomaillakin.
MCTS, Oracle Certified Professional, Java SE 7 Programmer, TOGAF® Foundation Certificate, Certified QT Specialist