Käyttäjän henkilöllisyyden varmistaminen esimerkiksi salasanalla, OAuth:lla tai magic linkillä.
Authentication · Konseptit
Autentikointi ja autentikaatio tarkoittavat samaa: käyttäjän henkilöllisyyden todentamista eli sen varmistamista, että käyttäjä on se, joka hän sanoo olevansa. Englanniksi termi on authentication, ja koodissa se lyhennetään usein muotoon auth. Autentikointi on eri asia kuin auktorisointi (authorization), joka päättää, mitä tunnistettu käyttäjä saa tehdä.
Autentikaatio tarkoittaa käyttäjän henkilöllisyyden varmistamista eli käytännössä kirjautumistoimintoa. Se voi tapahtua sähköpostilla ja salasanalla, OAuth:lla (kirjaudu Googlella/GitHubilla) tai magic linkillä joka lähetetään sähköpostiin. Vibekoodauksessa autentikaatio on yksi yleisimmistä tarpeista: lähes jokainen sovellus tarvitsee kirjautumisen. Supabase Auth ja NextAuth.js ovat suosituimmat ratkaisut Next.js-projekteissa. Tekoälyltä kannattaa pyytää autentikaation toteutusta kokonaisuutena: kirjautumislomake, session hallinta, suojatut reitit ja uloskirjautuminen.
Autentikointi eli todentaminen tarkoittaa sen varmistamista, että käyttäjä on se, joka hän väittää olevansa. Tavallisin esimerkki on kirjautuminen sähköpostilla ja salasanalla. Englanniksi termi on authentication, ja koodissa siitä käytetään lyhennettä auth.
Autentikointi vastaa kysymykseen, kuka olet. Auktorisointi vastaa kysymykseen, mitä saat tehdä. Ensin sovellus tunnistaa käyttäjän, sitten se tarkistaa oikeudet, esimerkiksi saako käyttäjä muokata vain omia tietojaan.
Kaksivaiheisessa tunnistautumisessa (2FA tai MFA) tarvitaan salasanan lisäksi toinen todiste, esimerkiksi puhelimeen tuleva koodi tai todennussovelluksen luku. Se estää kirjautumisen silloinkin, kun salasana on vuotanut.
Supabase Auth hoitaa kirjautumisen, session ja käyttäjähallinnan
OAuth: "Kirjaudu Google-tilillä" -nappi on käyttäjille helpoin tapa
Magic link: kirjautumislinkki sähköpostiin ilman salasanaa
NextAuth.js on suosittu autentikaatiokirjasto Next.js-projekteille
Tutustu kaikkiin vibekoodauksen termeihin.