Kako dodati prijavu u svoju aplikaciju: lozinke, magične poveznice, Google i uloge
Da biste dodali prijavu aplikaciji, odaberite način: e-poštu i lozinku, magične poveznice (jednokratnu poveznicu za prijavu poslanu e-poštom) ili „Prijava putem Googlea“, i implementirajte ga provjerenom bibliotekom za autentikaciju ili hostiranim pružateljem, a ne od nule. Zatim odredite što svaka vrsta korisnika smije raditi (uloge) i provodite to na poslužitelju za svaku stranicu i svaki API zahtjev. Sesije trebaju koristiti sigurne kolačiće, isteći i ispravno završiti pri odjavi.
Ovaj vodič prolazi kroz svaki izbor i pojedinosti koje razdvajaju radnu prijavu od sigurne. Za pojmove iza toga pogledajte što je autentikacija.
Prvo odlučite: trebate li uopće prijavu?
Prijava dodaje trenje i odgovornost. Trebate je kada:
- Korisnici imaju privatne podatke (svoje rezervacije, dokumente, račune)
- Korisnici mogu mijenjati stvari koje će drugi vidjeti
- Naplaćujete pristup
- Različiti ljudi trebaju različita dopuštenja (vlasnik naspram osoblja naspram kupca)
Vjerojatno vam ne treba za stranicu marketinga, javni imenik ili obrazac koji vam samo šalje e-poštu. Lista čekanja ne treba račune; polje za e-poštu je dovoljno.
Četiri uobičajene metode prijave
| Metoda | Kako radi | Prednosti | Nedostaci |
|---|---|---|---|
| E-pošta i lozinka | Korisnik stvori lozinku; vi spremate njezin hash | Poznato, radi bez e-pošte | Resetiranje lozinki, ponovna upotreba, curenja; lozinke morate sigurno pohraniti |
| Magična poveznica | Korisnik unese e-poštu, klikne poveznicu koju mu pošaljete | Nema lozinki za pohranu ni zaboravljanje | Ovisi o dostavi e-pošte; prijava je sporija |
| Jednokratni kod | Korisnik unese e-poštu, upiše 6-znamenkasti kod | Radi kada se poveznice otvore u krivom pregledniku | Ista ovisnost o e-pošti |
| Društvena / OAuth (Google, Apple, GitHub, Microsoft) | Drugi pružatelj potvrđuje tko je korisnik | Najbrže za korisnike; nema lozinke za vas da je pohranjujete | Korisnici moraju imati taj račun; postavljanje kod pružatelja |
Mnoge aplikacije kombiniraju dvije: prijava putem Googlea plus magične poveznice e-poštom popularan je par koji pokriva većinu ljudi bez pohrane ijedne lozinke.
E-pošta i lozinka
Ako nudite lozinke, ovo su neopozivi zahtjevi:
- Hashirajte lozinke sporim algoritmom za hashiranje lozinki. OWASP-ove smjernice za pohranu lozinki preporučuju Argon2id, a kao alternative scrypt, bcrypt ili PBKDF2. Nikada ne spremajte lozinke u običnom tekstu ni s brzim općim hashom.
- Resetiranja lozinki koriste nasumičnu poveznicu za jednokratnu uporabu koja istječe, poslanu na provjerenu e-poštu.
- Ne otkrivajte koje e-adrese imaju račune. „Ako je ova e-pošta registrirana, poslali smo poveznicu za resetiranje“ bolje je od „Račun nije pronađen“.
- Ograničite broj pokušaja prijave i resetiranja da usporite pogađanje lozinki.
- Dopustite duge lozinke i upravitelje lozinki; izbjegavajte pravila koja traže čudne kombinacije znakova.
Magične poveznice i jednokratni kodovi
Magična poveznica je poveznica za prijavu poslana korisniku e-poštom. Klikom na nju korisnik se prijavljuje. Jednokratni kod je ista ideja, samo se upisuje umjesto da se klikne.
- Poveznice i kodovi brzo istječu i rade samo jednom.
- Poveznica treba prijaviti korisnika na uređaju na kojem je kliknuo, a token ne smije ostati u zapisnicima ili alatima za analitiku.
- Potrebna vam je pouzdana dostava e-pošte; pogledajte kako slati e-poštu iz aplikacije. Testirajte s Gmailom i Outlookom te provjeravajte mapu neželjene pošte.
Prijava putem Googlea (i drugi OAuth pružatelji)
„Prijava putem Googlea“ koristi OAuth i OpenID Connect: Google potvrđuje tko je korisnik i govori vašoj aplikaciji njegovu e-poštu i ime. Postavljanje se od rujna 2026. odvija u odjeljku Google Auth Platform u Google Cloud konzoli:
- Stvorite ili odaberite projekt i ispunite stranicu Branding: što korisnici vide na zaslonu pristanka (naziv aplikacije, e-pošta za podršku, logotip).
- Na stranici Clients stvorite klijenta vrste „Web application“.
- Dodajte authorized JavaScript origins i redirect URI-je: točne adrese na kojima vaša aplikacija radi i na koje Google vraća korisnike nakon prijave.
- Spremite ID klijenta i tajnu klijenta u tajne vrijednosti aplikacije.
Stvari koje se često pokvare, prema Googleovoj OAuth dokumentaciji:
redirect_uri_mismatch: adresa za preusmjeravanje mora se točno podudarati, uključujućihttpnaspramhttps, velika i mala slova i eventualnu kosu crtu na kraju. Dodajte jednu za adresu pregleda i jednu za svoju živu domenu.- Potreban HTTPS: redirect URI-ji moraju koristiti HTTPS, osim
localhosttijekom razvoja. - Parametar
statetreba provjeriti pri povratku kako bi se zaštitili od cross-site request forgery napada. Dobre biblioteke to rade za vas.
Ako tražite samo osnovne podatke za prijavu (ime, e-poštu, profil), Google kaže da provjera aplikacije nije obavezna. Traženje pristupa Gmailu, Driveu ili Kalendaru korisnika je drugačije i zahtijeva provjeru.
Izgraditi sami ili koristiti pružatelja?
| Pristup | Primjeri | Kada odgovara |
|---|---|---|
| Hostirani pružatelj autentikacije | Usluge koje hostiraju prijavu, upravljanje korisnicima i sesije umjesto vas | Želite da prijava brzo radi uz manje sigurnosne odgovornosti |
| Biblioteka za autentikaciju u vašoj aplikaciji | Biblioteke otvorenog koda za vaš okvir | Želite korisnike u vlastitoj bazi i bez naknade po korisniku |
| Napisati sami | — | Gotovo nikada. Previše suptilnih detalja |
Oba prva pristupa su razumna. Hostirani pružatelji rade više umjesto vas, ali dodaju ovisnost i ponekad naplaćuju po aktivnom korisniku; aktualne cijene provjerite na njihovim stranicama. Biblioteke sve drže u vašoj bazi, ali vam ostavljaju više za ispravno konfiguriranje. Što god odaberete, zamolite AI da koristi to umjesto da ručno piše logiku lozinki ili sesija.
Uloge i dopuštenja
Prijava vam govori tko je netko. Dopuštenja odlučuju što smije raditi. U početku držite stvari jednostavnima:
| Uloga | Tipična dopuštenja |
|---|---|
| Posjetitelj | Vidi javne stranice |
| Član / kupac | Vidi i uređuje samo svoje zapise |
| Osoblje | Vidi sve zapise svog tima ili poslovanja; ne može mijenjati postavke ni naplatu |
| Vlasnik / administrator | Sve, uključujući korisnike i naplatu |
Pravila koja su važnija od naziva uloga:
- Provjeravajte na poslužitelju, svaki put. Skrivanje gumba na stranici ne sprječava nikoga da izravno pozove API.
- Ograničite prema vlasniku. Član koji dohvaća „rezervaciju 123“ treba je dobiti samo ako je njegova.
- Korisnici ne mogu sami sebe unaprijediti. Ignorirajte polja uloga poslana iz preglednika pri ažuriranju profila.
- Zadano bez pristupa. Nove rute trebaju tražiti prijavu, osim ako ne odlučite drukčije.
Testirajte s dva računa: prijavite se kao jedan, zabilježite ID zapisa, zatim se prijavite kao drugi i pokušajte ga otvoriti. Naš sigurnosni kontrolni popis sadrži cijeli test.
Sigurnost sesije
Nakon prijave aplikacija pamti korisnika kroz sesiju, obično kolačić. OWASP-ove smjernice za upravljanje sesijama preporučuju:
- Kolačići sesije postavljeni s
Secure(samo HTTPS),HttpOnly(nečitljivi za skripte stranice) iSameSite - Novi ID sesije izdan pri prijavi i ponovno pri promjeni privilegija
- Vremensko ograničenje neaktivnosti i maksimalni rok trajanja, provedeni na poslužitelju
- Odjava koja završava sesiju na poslužitelju, a ne samo briše kolačić
- Sesije poništene kada korisnik promijeni lozinku
Spremanje tokena za prijavu u lokalnu pohranu preglednika uobičajeno je u udžbenicima, ali izlaže ih svakoj skripti koja radi na stranici; sigurni kolačići obično su bolji zadani izbor za web-aplikacije.
Prompt koji pokriva bitno
Dodaj korisničke račune u ovu aplikaciju. Korisnici se mogu registrirati i prijaviti s e-poštom i lozinkom ili putem Googlea. Koristi [biblioteku ili pružatelja] umjesto prilagođenog koda za autentikaciju. Hashiraj lozinke pomoću Argon2id ili bcrypt. Dodaj resetiranje lozinke e-poštom s jednokratnom poveznicom koja istječ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 te osiguraj da korisnici vide samo vlastite projekte. Dodaj ulogu „admin“ koja može vidjeti sve korisnike; samo administratori smiju doći do /admin, provjereno na poslužitelju.
Zatim testirajte: registrirajte se, odjavite, prijavite, resetirajte lozinku, pokušajte privatnu adresu dok niste prijavljeni i pokušajte tuđi zapis.
Česte greške u prijavi izrađenoj AI alatima
- Zaštita samo na stranici. Stranica preusmjerava odjavljene korisnike, ali API vraća podatke svakome.
- Tajne u pregledniku. Tajne klijenata OAuth-a i administratorski ključevi pružatelja autentikacije pripadaju poslužitelju.
- Zamijenjene adrese pregleda i žive adrese. Googleov redirect URI ili poveznica za reset lozinke pokazuje na pregled, pa prijava pukne nakon objave.
- Nema provjere e-pošte. Netko se može registrirati kao anyone@company.com. Provjerite e-poštu prije nego dodijelite bilo što vezano uz tu adresu.
- Testiranje samo sretnog puta. Isprobajte pogrešne lozinke, istekle poveznice i drugi račun.
Dodavanje prijave u Mythexu
Na Mythexu je prijava za korisnike vaše aplikacije nešto što dodajete u svoju aplikaciju. Odvojena je od vašeg vlastitog Mythex računa. Mythex ne pruža ugrađeni proizvod za autentikaciju, pa donosite vlastitu biblioteku ili pružatelja i njihove ključeve:
- Odaberite pristup, na primjer e-poštu i lozinku spremljenu u vlastitoj bazi ili SDK hostiranog pružatelja.
- Ako korisnike spremate sami, aplikaciji treba baza podataka; zatražite je u chatu ili upotrijebite
/database. - Stavite ključeve pružatelja u tajne vrijednosti projekta (
/secretsili postavke projekta). - Koristite prompt kao gore, zatim testirajte u Previewu. Za prijavu putem Googlea dodajte redirect URI-je i za svoj pregled i za objavljenu adresu.
Pogledajte Dodavanje prijave u vašu aplikaciju u dokumentaciji. Ako gradite plaćeni proizvod, kako izraditi SaaS MVP pokriva račune i naplatu zajedno.
Pitanja
Koja je najlakša prijava za dodati aplikaciji?
Korištenje hostiranog pružatelja autentikacije ili dobro održavane biblioteke za autentikaciju obično je najlakše i najsigurnije, jer su sesije, pohrana lozinki i resetiranje već riješeni. Prijava putem Googlea najmanje je zahtjevna opcija za korisnike koji imaju Google račun.
Jesu li magične poveznice sigurnije od lozinki?
Uklanjaju ponovnu upotrebu lozinki i slabe lozinke, ali rizik prebacuju na e-poštu korisnika. Poveznice trebaju brzo isteći i raditi samo jednom. Za većinu malih aplikacija razuman su izbor, često ponuđen uz prijavu putem Googlea.
Trebam li Googleovo odobrenje za dodavanje prijave putem Googlea?
Ako tražite samo osnovne podatke za prijavu (ime, e-poštu i profil), Google kaže da provjera aplikacije nije obavezna, iako i dalje konfigurirate zaslon pristanka i OAuth klijent. Traženje pristupa osjetljivim podacima poput Gmaila ili Drivea zahtijeva Googleovu provjeru aplikacije.
Koja je razlika između prijave i dopuštenja?
Prijava (autentikacija) potvrđuje tko je korisnik. Dopuštenja (autorizacija) određuju što taj korisnik smije vidjeti i raditi. Aplikaciji trebaju oboje, a dopuštenja se moraju provjeravati na poslužitelju pri svakom zahtjevu.