Kako dodati prijavo v svojo aplikacijo: gesla, čarobne povezave, Google in vloge
Prijavo v aplikacijo dodate tako, da izberete način — e-pošto in geslo, čarobne povezave (enkratna povezava za prijavo, poslana po e-pošti) ali »Prijava z Googlom« — in ga implementirate s preizkušeno knjižnico za avtentikacijo ali gostovanim ponudnikom, namesto da bi ga pisali od začetka. Nato določite, kaj sme vsak tip uporabnika (vloge), in to uveljavite na strežniku za vsako stran in zahtevo API-ja. Seje naj uporabljajo varne piškotke, naj potečejo in se pravilno končajo ob odjavi.
Ta vodnik obravnava vsako izbiro in podrobnosti, ki ločijo delujočo prijavo od varne. Za koncepte glejte kaj je avtentikacija.
Najprej se odločite: sploh potrebujete prijavo?
Prijava doda trenje in odgovornost. Potrebujete jo, ko:
- Uporabniki imajo zasebne podatke (svoje rezervacije, dokumente, račune)
- Uporabniki lahko spreminjajo stvari, ki jih bodo drugi videli
- Dostop zaračunavate
- Različni ljudje potrebujejo različna dovoljenja (lastnik proti sodelavcu proti stranki)
Morda je ne potrebujete za trženjsko stran, javni imenik ali obrazec, ki vam samo pošlje e-pošto. Seznam za čakanje ne potrebuje računov; dovolj je polje za e-pošto.
Štiri pogoste metode prijave
| Metoda | Kako deluje | Prednosti | Slabosti |
|---|---|---|---|
| E-pošta in geslo | Uporabnik ustvari geslo; vi shranite njegov zgoščen zapis | Znano, deluje brez e-pošte | Ponastavitve gesel, ponovna uporaba, uhajanje podatkov; gesla morate varno shranjevati |
| Čarobna povezava | Uporabnik vnese e-pošto, klikne povezavo, ki jo pošljete | Ni gesel za shranjevanje ali pozabljanje | Odvisno od dostave e-pošte; prijava je počasnejša |
| Enkratna koda | Uporabnik vnese e-pošto in vtipka 6-mestno kodo | Deluje, kadar se povezave odprejo v napačnem brskalniku | Enaka odvisnost od e-pošte |
| Družbeni / OAuth (Google, Apple, GitHub, Microsoft) | Drug ponudnik potrdi, kdo je uporabnik | Najhitrejše za uporabnike; ni gesla, ki bi ga morali hraniti | Uporabniki potrebujejo ta račun; nastavitev pri ponudniku |
Mnoge aplikacije kombinirajo dve: prijava z Googlom plus čarobne povezave po e-pošti je priljubljen par, ki pokrije večino ljudi, ne da bi shranjevali kakršna koli gesla.
E-pošta in geslo
Če ponujate gesla, so to neogibne zahteve:
- Gesla zgoščujte z počasnim algoritmom za zgoščevanje gesel. Smernice OWASP za shranjevanje gesel priporočajo Argon2id, alternative pa so scrypt, bcrypt ali PBKDF2. Gesel nikoli ne shranjujte v čistem besedilu ali s hitro splošno zgoščevalno funkcijo.
- Ponastavitve gesla uporabljajo naključno, enkratno povezavo, ki poteče, poslano na preverjeno e-pošto.
- Ne razkrijte, kateri e-poštni naslovi imajo račune. »Če je ta e-pošta registrirana, smo poslali povezavo za ponastavitev« je boljše kot »Računa ni bilo mogoče najti«.
- Omejite število poskusov prijave in ponastavitve, da upočasnite ugibanje gesel.
- Dovolite dolga gesla in upravitelje gesel; opustite pravila, ki zahtevajo nenavadne kombinacije znakov.
Čarobne povezave in enkratne kode
Čarobna povezava je povezava za prijavo, poslana uporabniku po e-pošti. Če nanjo klikne, se prijavi. Enkratna koda je enaka zamisel, samo da jo uporabnik vtipka namesto da klikne.
- Povezave in kode hitro potečejo in delujejo samo enkrat.
- Povezava naj prijavi uporabnika v napravi, kjer je kliknil, žeton pa ne sme ostati v dnevnikih ali orodjih za analitiko.
- Potrebujete zanesljivo pošiljanje e-pošte — glejte kako pošiljati e-pošto iz aplikacije. Preizkusite z Gmailom in Outlookom ter preverite mapo za neželeno pošto.
Prijava z Googlom (in drugi ponudniki OAuth)
»Prijava z Googlom« uporablja OAuth in OpenID Connect: Google potrdi, kdo je uporabnik, in vaši aplikaciji sporoči njegov e-poštni naslov in ime. Nastavitev se od septembra 2026 opravi v razdelku Google Auth Platform v Google Cloud Console:
- Ustvarite ali izberite projekt in izpolnite stran Branding — kar uporabniki vidijo na zaslonu soglasja (ime aplikacije, e-pošta za podporo, logotip).
- Na strani Clients ustvarite odjemalca vrste »Web application«.
- Dodajte authorized JavaScript origins in redirect URI — točne naslove, na katerih teče vaša aplikacija in na katere Google uporabnike vrne po prijavi.
- Client ID in client secret shranite med tajnosti aplikacije.
Stvari, ki se pogosto zataknejo, po dokumentaciji Googlovega OAuth-a:
redirect_uri_mismatch: naslov za preusmeritev se mora ujemati natančno, vključno zhttpprotihttps, velikimi in malimi črkami ter končno poševnico. Dodajte enega za svoj naslov predogleda in enega za svojo živo domeno.- Zahtevan HTTPS: URI-ji za preusmeritev morajo uporabljati HTTPS, razen
localhostmed razvojem. - Parameter
stateje treba preveriti ob vrnitvi, da se zaščitite pred ponarejanjem zahtevkov med spletnimi mesti. Dobre knjižnice to naredijo namesto vas.
Če zahtevate samo osnovne podatke za prijavo (ime, e-pošto, profil), Google pravi, da preverjanje aplikacije ni obvezno. Zahteva dostopa do Gmaila, Drive ali koledarja uporabnikov je drugačna in zahteva preverjanje.
Zgradite sami ali uporabite ponudnika?
| Pristop | Primeri | Kdaj ustreza |
|---|---|---|
| Gostovani ponudnik avtentikacije | Storitve, ki gostijo prijavo, upravljanje uporabnikov in seje namesto vas | Želite prijavo hitro in z manj varnostne odgovornosti |
| Knjižnica za avtentikacijo v vaši aplikaciji | Odprtokodne knjižnice za vaše ogrodje | Želite uporabnike v svoji bazi in brez mesečnih stroškov na uporabnika |
| Napišite sami | — | Skoraj nikoli. Preveč subtilnih podrobnosti |
Oba prva sta razumna. Gostovani ponudniki naredijo več namesto vas, vendar dodajo odvisnost in včasih stanejo na aktivnega uporabnika; trenutne cene preverite na njihovih straneh. Knjižnice vse hranijo v vaši bazi, vendar vam pustijo več za pravilno konfiguracijo. Ne glede na izbiro AI-ja naročite, naj uporabi to, namesto da ročno piše logiko gesel ali sej.
Vloge in dovoljenja
Prijava vam pove, kdo je nekdo. Dovoljenja odločijo, kaj sme narediti. Na začetku ohranite preprostost:
| Vloga | Tipična dovoljenja |
|---|---|
| Obiskovalec | Ogled javnih strani |
| Član / stranka | Ogled in urejanje lastnih zapisov |
| Sodelavec | Ogled vseh zapisov v svoji ekipi ali podjetju; ne sme spreminjati nastavitev ali zaračunavanja |
| Lastnik / skrbnik | Vse, vključno z uporabniki in zaračunavanjem |
Pravila, ki so pomembnejša od imen vlog:
- Preverite na strežniku, vsakič. Skrivanje gumba na strani ne prepreči, da bi kdo neposredno klical API.
- Omejite na lastnika. Član, ki pridobi »rezervacijo 123«, jo sme dobiti samo, če je njegova.
- Uporabniki ne morejo napredovati sami. Polja vlog, poslana iz brskalnika ob posodobitvi profila, ignorirajte.
- Privzeto brez dostopa. Nove poti naj zahtevajo prijavo, razen če se odločite drugače.
Preizkusite z dvema računoma: prijavite se kot prvi, zapišite ID zapisa, nato se prijavite kot drugi in poskusite odpreti ta zapis. Naš varnostni kontrolni seznam vsebuje celoten test.
Varnost seje
Po prijavi aplikacija uporabnika zapomni s sejo — običajno s piškotkom. Smernice OWASP za upravljanje sej priporočajo:
- Piškotki seje nastavljeni z
Secure(samo HTTPS),HttpOnly(skripte strani jih ne morejo brati) inSameSite - Nov ID seje ob prijavi in znova, ko se spremenijo pravice
- Časovna omejitev neaktivnosti in absolutna največja življenjska doba, uveljavljeni na strežniku
- Odjava, ki konča sejo na strežniku, ne samo izbriše piškotka
- Seje se razveljavijo, ko uporabnik spremeni geslo
Shranjevanje žetonov za prijavo v lokalno shrambo brskalnika je v vadnicah pogosto, vendar jih izpostavi vsaki skripti, ki teče na strani; varni piškotki so ponavadi boljša privzeta izbira za spletne aplikacije.
Poziv, ki pokrije bistvo
Dodaj uporabniške račune v to aplikacijo. Uporabniki se lahko registrirajo in prijavijo z e-pošto in geslom ali z Googlom. Uporabi [knjižnica ali ponudnik] namesto lastne kode za avtentikacijo. Gesla zgoščuj z Argon2id ali bcrypt. Dodaj ponastavitev gesla po e-pošti z enkratno povezavo, ki poteče v eni uri. Seje hrani v varnih piškotkih HttpOnly. Zaščiti /dashboard in vsako pot /api, da jih lahko uporabljajo samo prijavljeni uporabniki, in poskrbi, da uporabniki vidijo samo svoje projekte. Dodaj vlogo »admin«, ki lahko vidi vse uporabnike; do /admin lahko dostopajo samo skrbniki, preverjeno na strežniku.
Nato preizkusite: registrirajte se, odjavite, prijavite, ponastavite geslo, poskusite zasebni URL, ko niste prijavljeni, in poskusite zapis drugega uporabnika.
Pogoste napake pri prijavi, zgrajeni z AI
- Zaščita samo na strani. Stran preusmeri odjavljene uporabnike, API pa vrne podatke vsakomur.
- Tajnosti v brskalniku. Skrivnosti odjemalca OAuth in skrbniški ključi ponudnika avtentikacije sodijo na strežnik.
- Pomešani živi in predogledni URL-ji. Googlov URI za preusmeritev ali povezava za ponastavitev v e-pošti kaže na predogled, zato se prijava po objavi zlomi.
- Brez preverjanja e-pošte. Kdorkoli se lahko registrira kot anyone@company.com. Preverite e-pošto, preden podelite kar koli, povezanega s tem naslovom.
- Testiranje samo poti sreče. Preizkusite napačna gesla, potečene povezave in drugi račun.
Dodajanje prijave v Mythexu
V Mythexu je prijava za uporabnike vaše aplikacije nekaj, kar dodate svoji aplikaciji — loči se od vašega lastnega računa Mythex. Mythex ne ponuja vgrajenega izdelka za avtentikacijo, zato prinesete knjižnico za avtentikacijo ali ponudnika in njegove ključe:
- Izberite pristop — na primer e-pošto in geslo, shranjena v vaši bazi, ali SDK gostovanega ponudnika.
- Če uporabnike shranjujete sami, aplikacija potrebuje bazo podatkov; zahtevajte jo v klepetu ali uporabite
/database. - Ključe ponudnika shranite v tajnosti projekta (
/secretsali nastavitve projekta). - Uporabite poziv, kot je zgornji, nato preizkusite v Predogledu. Za prijavo z Googlom dodajte URI-je za preusmeritev za svoj predogled in za objavljeni naslov.
Glejte Dodajte prijavo v svojo aplikacijo v dokumentaciji. Če gradite plačljiv izdelek, kako zgraditi SaaS MVP obravnava račune in zaračunavanje skupaj.
Vprašanja
Katera prijava je najlažje dodati v aplikacijo?
Ponavadi je najlažje in najvarnejše uporabiti gostovanega ponudnika avtentikacije ali dobro vzdrževano knjižnico za avtentikacijo, ker sta seje, shranjevanje gesel in ponastavitve že urejeni. Prijava z Googlom je najmanj zapletena možnost za uporabnike, ki imajo Google račun.
Ali so čarobne povezave varnejše od gesel?
Odpravijo ponovno uporabo gesel in šibka gesla, vendar tveganje prenesejo na e-poštni račun uporabnika. Povezave naj hitro potečejo in delujejo samo enkrat. Za večino manjših aplikacij so razumna izbira, pogosto ponujena skupaj s prijavo z Googlom.
Ali potrebujem Googlovo odobritev za dodajanje prijave z Googlom?
Če zahtevate samo osnovne podatke za prijavo (ime, e-pošto in profil), Google pravi, da preverjanje aplikacije ni obvezno, čeprav še vedno nastavite zaslon soglasja in odjemalca OAuth. Zahteva dostopa do občutljivih podatkov, kot sta Gmail ali Drive, zahteva Googlovo preverjanje aplikacije.
Kakšna je razlika med prijavo in dovoljenji?
Prijava (avtentikacija) potrdi, kdo je uporabnik. Dovoljenja (avtorizacija) odločijo, kaj sme ta uporabnik videti in narediti. Aplikacija potrebuje oboje, dovoljenja pa morajo biti na strežniku preverjena pri vsaki zahtevi.