Kako dodati prijavu u vašu aplikaciju: lozinke, magični linkovi, Google i uloge
Da biste dodali prijavu u aplikaciju, izaberite metod (email i lozinka, magični linkovi, tj. jednokratni link za prijavu poslan emailom, ili "Prijava preko Googlea") i implementirajte ga pomoću provjerene biblioteke za autentikaciju ili hostovanog dobavljača, a ne od nule. Zatim odlučite šta svaka vrsta korisnika smije da radi (uloge) i to provodite na serveru za svaku stranicu i svaki API zahtjev. Sesije treba da koriste sigurne kolačiće, da istječu i da se pravilno završavaju pri odjavi.
Ovaj vodič prolazi kroz svaki izbor i detalje koji razdvajaju radnu prijavu od sigurne. Za koncepte iza toga, pogledajte šta je autentikacija.
Prvo odlučite: da li vam uopšte treba prijava?
Prijava donosi trenje i odgovornost. Treba vam kada:
- Korisnici imaju privatne podatke (svoje rezervacije, dokumente, fakture)
- Korisnici mogu mijenjati stvari koje drugi vide
- Naplaćujete pristup
- Različiti ljudi trebaju različite dozvole (vlasnik naspram osoblja naspram kupca)
Ne treba vam za marketing stranicu, javni imenik ili obrazac koji vam samo šalje email. Lista čekanja ne treba naloge; dovoljno je polje za email.
Četiri uobičajena metoda prijave
| Metod | Kako radi | Prednosti | Mane |
|---|---|---|---|
| Email i lozinka | Korisnik kreira lozinku; vi čuvate njen hash | Poznato, radi bez emaila | Resetovanja lozinke, ponovna upotreba, proboji; morate sigurno čuvati lozinke |
| Magični link | Korisnik unese email, klikne link koji mu pošaljete | Nema lozinki za čuvanje ili zaboravljanje | Zavisi od isporuke emaila; prijava je sporija |
| Jednokratni kod | Korisnik unese email, otkuca kod od 6 cifara | Radi kada se linkovi otvore u pogrešnom pregledniku | Ista zavisnost od emaila |
| Društvena / OAuth (Google, Apple, GitHub, Microsoft) | Drugi dobavljač potvrđuje ko je korisnik | Najbrže za korisnike; nema lozinke za vas da čuvate | Korisnici moraju imati taj nalog; podešavanje kod dobavljača |
Mnoge aplikacije kombinuju dva: prijava preko Googlea plus magični linkovi preko emaila popularan je par koji pokriva većinu ljudi bez čuvanja ijedne lozinke.
Email i lozinka
Ako nudite lozinke, ovo su neopozivi zahtjevi:
- Hashujte lozinke sporim algoritmom za hashiranje lozinki. OWASP-ove smjernice za čuvanje lozinki preporučuju Argon2id, a kao alternative scrypt, bcrypt ili PBKDF2. Nikada ne čuvajte lozinke u običnom tekstu ili s brzim opštim hashom.
- Resetovanje lozinke koristi nasumičan jednokratni link koji ističe, poslan na provjeren email.
- Ne otkrivajte koji emailovi imaju naloge. "Ako je taj email registrovan, poslali smo link za resetovanje" je bolje od "Nalog nije pronađen".
- Ograničite broj pokušaja prijave i resetovanja da usporite pogađanje lozinki.
- Dozvolite duge lozinke i menadžere lozinki; izbjegavajte pravila koja traže neobične kombinacije znakova.
Magični linkovi i jednokratni kodovi
Magični link je link za prijavu poslan korisniku emailom. Klik na njega prijavljuje korisnika. Jednokratni kod je ista ideja, ali se upisuje umjesto da se klikne.
- Linkovi i kodovi brzo istječu i rade samo jednom.
- Link treba da prijavi korisnika na uređaju na kojem je kliknuo, a token ne smije ostati u logovima ili alatima za analitiku.
- Potrebno vam je pouzdano slanje emaila; pogledajte kako slati emailove iz vaše aplikacije. Testirajte s Gmailom i Outlookom i provjerite spam fascikle.
Prijava preko Googlea (i drugih OAuth dobavljača)
"Prijava preko Googlea" koristi OAuth i OpenID Connect: Google potvrđuje ko je korisnik i vašoj aplikaciji kaže njegov email i ime. Podešavanje, od septembra 2026, radi se u sekciji Google Auth Platform u Google Cloud konzoli:
- Napravite ili izaberite projekat i popunite stranicu Branding: šta korisnici vide na ekranu za saglasnost (naziv aplikacije, email za podršku, logotip).
- Na stranici Clients napravite klijent tipa "Web application".
- Dodajte authorized JavaScript origins i redirect URI: tačne adrese na kojima vaša aplikacija radi i na koje Google vraća korisnike nakon prijave.
- Sačuvajte client ID i client secret u tajnama vaše aplikacije.
Stvari koje se često pokvare, prema Googlovoj OAuth dokumentaciji:
redirect_uri_mismatch: adresa za preusmjeravanje mora se tačno poklopiti, uključujućihttpnaspramhttps, velika i mala slova i završnu kosu crtu. Dodajte jednu za adresu pregleda i jednu za vaš živi domen.- Obavezan HTTPS: redirect URI-ji moraju koristiti HTTPS, osim
localhosttokom razvoja. - Parametar
statetreba provjeriti pri povratku da bi se zaštitili od cross-site request forgery napada. Dobre biblioteke to rade umjesto vas.
Ako tražite samo osnovne informacije za prijavu (ime, email, profil), Google kaže da verifikacija aplikacije nije obavezna. Traženje pristupa Gmailu, Driveu ili Kalendaru korisnika je drugačije i zahtijeva verifikaciju.
Napravite sami ili koristite dobavljača?
| Pristup | Primjeri | Kada odgovara |
|---|---|---|
| Hostovani dobavljač autentikacije | Servisi koji hostuju prijavu, upravljanje korisnicima i sesije umjesto vas | Želite prijavu brzo i s manje sigurnosne odgovornosti |
| Biblioteka za autentikaciju u vašoj aplikaciji | Biblioteke otvorenog koda za vaš framework | Želite korisnike u svojoj bazi i nemate naknadu po korisniku |
| Napisati sami | — | Skoro nikada. Previše suptilnih detalja |
Oba prva su razumna. Hostovani dobavljači rade više za vas, ali dodaju zavisnost i ponekad naplaćuju po aktivnom korisniku; provjerite aktuelne cijene na njihovim sajtovima. Biblioteke sve čuvaju u vašoj bazi, ali vam ostavljaju više da ispravno podesite. Šta god izaberete, zatražite od AI-ja da to koristi umjesto da sam piše logiku za lozinke ili sesije.
Uloge i dozvole
Prijava vam kaže ko je neko. Dozvole odlučuju šta smije da radi. Za početak držite jednostavno:
| Uloga | Tipične dozvole |
|---|---|
| Posjetilac | Vidi javne stranice |
| Član / kupac | Vidi i uređuje samo svoje zapise |
| Osoblje | Vidi sve zapise u svom timu ili firmi; ne može mijenjati postavke ili naplatu |
| Vlasnik / administrator | Sve, uključujući korisnike i naplatu |
Pravila koja su važnija od naziva uloga:
- Provjeravajte na serveru, svaki put. Sakrivanje dugmeta na stranici ne sprječava nikoga da direktno pozove API.
- Ograničite po vlasniku. Član koji traži "rezervaciju 123" treba da je dobije samo ako je njegova.
- Korisnici ne mogu sami sebi dodijeliti ulogu. Ignorišite polja za ulogu koja stižu iz preglednika pri izmjeni profila.
- Podrazumijevano bez pristupa. Nove rute treba da zahtijevaju prijavu, osim ako sami odlučite drugačije.
Testirajte s dva naloga: prijavite se kao jedan, zabilježite ID zapisa, prijavite se kao drugi i pokušajte da ga otvorite. Naša sigurnosna lista za aplikacije pravljene AI-jem ima cijeli test.
Sigurnost sesije
Nakon prijave, aplikacija pamti korisnika pomoću sesije, obično kolačića. OWASP-ove smjernice za upravljanje sesijama preporučuju:
- Kolačići sesije postavljeni s
Secure(samo HTTPS),HttpOnly(nečitljivi skriptama stranice) iSameSite - Novi ID sesije izdat pri prijavi i ponovo kada se prava promijene
- Istek zbog neaktivnosti i apsolutno maksimalno trajanje, provjereno na serveru
- Odjava koja završava sesiju na serveru, a ne samo briše kolačić
- Sesije poništene kada korisnik promijeni lozinku
Čuvanje tokena za prijavu u localStorage-u preglednika je često u udžbenicima, ali izlaže ih svakoj skripti koja se izvršava na stranici; sigurni kolačići su obično bolji podrazumijevani izbor za web aplikacije.
Prompt koji pokriva osnove
Dodaj korisničke naloge u ovu aplikaciju. Korisnici se mogu registrovati i prijaviti s emailom i lozinkom ili s Googleom. Koristi [biblioteku ili dobavljača] umjesto prilagođenog koda za autentikaciju. Hashuj lozinke pomoću Argon2id ili bcrypt. Dodaj resetovanje lozinke emailom s jednokratnim linkom koji ističe za sat vremena. Čuvaj sesije u sigurnim HttpOnly kolačićima. Zaštiti /dashboard i svaku /api rutu tako da ih mogu koristiti samo prijavljeni korisnici i pobrini se da korisnici vide samo svoje projekte. Dodaj ulogu "admin" koja može vidjeti sve korisnike; samo administratori mogu doći do /admin, provjereno na serveru.
Zatim testirajte: registrujte se, odjavite se, prijavite se, resetujte lozinku, pokušajte privatni URL dok niste prijavljeni i pokušajte zapis drugog korisnika.
Česte greške u prijavi pravljenoj AI-jem
- Zaštita samo na stranici. Stranica preusmjerava odjavljene korisnike, ali API vraća podatke bilo kome.
- Tajne u pregledniku. OAuth client secret-i i administratorski ključevi dobavljača autentikacije pripadaju serveru.
- Pomiješani URL-ovi pregleda i živog sajta. Google-ov redirect URI ili link za resetovanje u emailu pokazuje na pregled, pa prijava pukne nakon objavljivanja.
- Nema verifikacije emaila. Neko se može registrovati kao anyone@company.com. Verifikujte email prije nego što dodijelite bilo šta vezano za tu adresu.
- Testiranje samo sretnog puta. Probajte pogrešne lozinke, istekle linkove i drugi nalog.
Dodavanje prijave u Mythexu
Na Mythexu, prijava za korisnike vaše aplikacije je nešto što dodajete u svoju aplikaciju; odvojena je od vašeg Mythex naloga. Mythex ne nudi ugrađeni proizvod za autentikaciju, pa donosite biblioteku ili dobavljača i njihove ključeve:
- Izaberite pristup, na primjer email i lozinka sačuvani u vašoj bazi ili SDK hostovanog dobavljača.
- Ako sami čuvate korisnike, aplikacija treba bazu podataka; zatražite je u chatu ili upišite
/database. - Stavite ključeve dobavljača u tajne projekta (
/secretsili postavke projekta). - Koristite prompt kao gore, zatim testirajte u pregledu. Za prijavu preko Googlea, dodajte redirect URI-je i za adresu pregleda i za objavljenu adresu.
Pogledajte Add login to your app u dokumentaciji. Ako pravite plaćeni proizvod, kako napraviti SaaS MVP pokriva naloge i naplatu zajedno.
Pitanja
Koja je najlakša prijava za dodati u aplikaciju?
Korištenje hostovanog dobavljača autentikacije ili dobro održavane biblioteke za autentikaciju obično je najlakše i najsigurnije, jer su sesije, čuvanje lozinki i resetovanja već riješeni. Prijava preko Googlea je najjednostavnija opcija za korisnike koji imaju Google naloge.
Da li su magični linkovi sigurniji od lozinki?
Uklanjaju ponovnu upotrebu lozinki i slabe lozinke, ali rizik prebacuju na email nalog korisnika. Linkovi treba brzo da isteknu i da rade samo jednom. Za većinu malih aplikacija su razuman izbor, često ponuđen uz prijavu preko Googlea.
Da li mi treba Googlovo odobrenje za dodavanje prijave preko Googlea?
Ako tražite samo osnovne informacije za prijavu (ime, email i profil), Google kaže da verifikacija nije obavezna, ali i dalje podešavate ekran za saglasnost i OAuth klijent. Traženje pristupa osjetljivim podacima kao što su Gmail ili Drive zahtijeva Googlovu verifikaciju aplikacije.
Koja je razlika između prijave i dozvola?
Prijava (autentikacija) potvrđuje ko je korisnik. Dozvole (autorizacija) odlučuju šta taj korisnik smije da vidi i radi. Aplikaciji trebaju oboje, a dozvole se moraju provjeravati na serveru za svaki zahtjev.