Kaip pridėti prisijungimą prie savo programėlės: slaptažodžiai, magiškos nuorodos, Google ir vaidmenys
Norėdami pridėti prisijungimą prie programėlės, pasirinkite būdą – el. paštą ir slaptažodį, magiškas nuorodas (vienkartinę prisijungimo nuorodą, išsiųstą el. paštu) arba „Prisijungti su Google“ – ir įdiekite jį naudodami patikrintą autentifikavimo biblioteką ar talpinamą tiekėją, o ne rašydami nuo nulio. Tada nuspręskite, ką kiekvieno tipo naudotojai gali daryti (vaidmenys), ir tai užtikrinkite serveryje kiekvienam puslapiui ir API užklausai. Sesijos turi naudoti saugius slapukus, turi baigtis laiku ir tinkamai užsibaigti atsijungiant.
Šiame gide apžvelgiamas kiekvienas pasirinkimas ir detalės, kurios atskiria veikiantį prisijungimą nuo saugaus. Sąvokas, į kurias tai remiasi, rasite kas yra autentifikavimas.
Pirmiausia nuspręskite: ar jums apskritai reikia prisijungimo?
Prisijungimas prideda trikdžių ir atsakomybės. Jums jo reikia, kai:
- Naudotojai turi privačių duomenų (savo rezervacijų, dokumentų, sąskaitų)
- Naudotojai gali keisti dalykus, kuriuos matys kiti
- Už prieigą imate mokestį
- Skirtingiems žmonėms reikia skirtingų leidimų (savininkas, darbuotojas, klientas)
Galbūt jums nereikia prisijungimo rinkodaros svetainei, viešam katalogui ar formai, kuri tiesiog atsiunčia jums el. laišką. Laukiančiųjų sąrašui paskyros nereikia; pakanka el. pašto lauko.
Keturi dažniausi prisijungimo būdai
| Būdas | Kaip veikia | Privalumai | Trūkumai |
|---|---|---|---|
| El. paštas ir slaptažodis | Naudotojas sukuria slaptažodį; jūs saugote jo maišą | Pažįstamas, veikia be interneto | Slaptažodžių atstatymas, pakartotinis naudojimas, nutekėjimai; slaptažodžius privalote saugoti saugiai |
| Magiška nuoroda | Naudotojas įveda el. paštą ir spaudžia nuorodą, kurią jūs išsiųsite | Nereikia saugoti ar pamiršti slaptažodžių | Priklauso nuo el. laiško pristatymo; prisijungimas lėtesnis |
| Vienkartinis kodas | Naudotojas įveda el. paštą ir surašo 6 skaitmenų kodą | Veikia, kai nuorodos atidaromos netinkamoje naršyklėje | Ta pati priklausomybė nuo el. pašto |
| Socialinis / OAuth (Google, Apple, GitHub, Microsoft) | Kitas tiekėjas patvirtina, kas yra naudotojas | Greičiausias naudotojams; jums nereikia saugoti slaptažodžio | Naudotojams reikia tos paskyros; sąranka pas tiekėją |
Daugelis programėlių sujungia du būdus: prisijungimas su Google ir el. pašto magiškos nuorodos yra populari pora, padengianti daugumą žmonių be jokių saugomų slaptažodžių.
El. paštas ir slaptažodis
Jei siūlote slaptažodžius, šie dalykai yra privalomi:
- Maišykite slaptažodžius lėtu slaptažodžių maišymo algoritmu. OWASP slaptažodžių saugojimo gairės rekomenduoja Argon2id, o alternatyvos – scrypt, bcrypt ar PBKDF2. Niekada nesaugokite slaptažodžių įprastu tekstu ar greitu bendros paskirties maišymu.
- Slaptažodžių atstatymas naudoja atsitiktinę, vienkartinę nuorodą, kuri baigia galioti, ir siunčiama patvirtintu el. pašto adresu.
- Neatskleiskite, kurie el. paštai turi paskyras. „Jei šis el. paštas užregistruotas, išsiuntėme atstatymo nuorodą“ yra geriau nei „Paskyra nerasta“.
- Ribokite prisijungimo ir atstatymo bandymų dažnį, kad apsunkintumėte slaptažodžių spėliojimą.
- Leiskite ilgus slaptažodžius ir slaptažodžių tvarkykles; nenaudokite taisyklių, kurios verčia keisti simbolių derinius.
Magiškos nuorodos ir vienkartiniai kodai
Magiška nuoroda – tai naudotojui el. paštu išsiųsta prisijungimo nuoroda. Ją paspaudus, naudotojas prisijungia. Vienkartinis kodas – ta pati idėja, bet vietoj paspaudimo įvedamas.
- Nuorodos ir kodai greitai baigia galioti ir veikia tik vieną kartą.
- Nuoroda turėtų prisijungti naudotoją įrenginyje, kuriame ji buvo paspausta, o prieigos raktas neturi likti žurnaluose ar analitikos įrankiuose.
- Jums reikia patikimo el. laiškų siuntimo – žr. kaip siųsti el. laiškus iš savo programėlės. Išbandykite su Gmail ir Outlook ir patikrinkite šlamšto aplankus.
Prisijungimas su Google (ir kiti OAuth tiekėjai)
„Prisijungti su Google“ naudoja OAuth ir OpenID Connect: Google patvirtina, kas yra naudotojas, ir pasako jūsų programėlei jo el. paštą ir vardą. Sąranka, 2026 m. rugsėjo duomenimis, vykdoma Google Cloud Console skyriuje Google Auth Platform:
- Sukurkite arba pasirinkite projektą ir užpildykite Branding puslapį – ką naudotojai mato sutikimo ekrane (programėlės pavadinimas, palaikymo el. paštas, logotipas).
- Puslapyje Clients sukurkite klientą tipo „Web application“.
- Pridėkite authorized JavaScript origins ir redirect URIs – tikslius adresus, kuriuose veikia jūsų programėlė ir į kuriuos Google grąžina naudotojus po prisijungimo.
- Klientų ID ir kliento paslaptį saugokite programėlės paslaptyse.
Dažniausiai nutinkančios klaidos pagal Google OAuth dokumentaciją:
redirect_uri_mismatch: nukreipimo adresas turi sutapti tiksliai, įskaitanthttparhttps, didžiąsias ir mažąsias raides bei galinį brūkšnelį. Pridėkite vieną peržiūros adresui ir vieną savo tiesioginiam domenui.- Reikalingas HTTPS: nukreipimo URI turi naudoti HTTPS, išskyrus
localhostkūrimo metu. - Parametras
stateturi būti patikrinamas grįžtant, kad būtų apsaugota nuo tarpvietinių užklausų klastojimo. Geros bibliotekos tai daro už jus.
Jei prašote tik pagrindinės prisijungimo informacijos (vardo, el. pašto, profilio), Google sako, kad programos patvirtinimas nėra privalomas. Prašymas prieigos prie naudotojų Gmail, Drive ar Calendar yra kitas dalykas ir reikalauja patvirtinimo.
Kurti pačiam ar naudoti tiekėją?
| Būdas | Pavyzdžiai | Kada tinka |
|---|---|---|
| Talpinamas autentifikavimo tiekėjas | Paslaugos, kurios talpina prisijungimą, naudotojų valdymą ir sesijas už jus | Norite, kad prisijungimas greitai veiktų su mažesne saugumo atsakomybe |
| Autentifikavimo biblioteka jūsų programėlėje | Atvirojo kodo bibliotekos jūsų sistemai | Norite naudotojus laikyti savo duomenų bazėje ir be mokesčių už kiekvieną naudotoją |
| Rašyti patiems | — | Beveik niekada. Per daug subtilių detalių |
Abu pirmieji variantai yra priimtini. Talpinami tiekėjai daugiau atlieka už jus, bet prideda priklausomybę ir kartais kainuoja už kiekvieną aktyvų naudotoją; dabartines kainas patikrinkite jų svetainėse. Bibliotekos viską laiko jūsų duomenų bazėje, bet daugiau dalykų paliekama jums sukonfigūruoti teisingai. Ką bepasirinktumėte, paprašykite DI naudoti tai, o ne kurti slaptažodžių ar sesijų logiką rankomis.
Vaidmenys ir leidimai
Prisijungimas parodo, kas asmuo yra. Leidimai nusprendžia, ką jis gali daryti. Iš pradžių laikykitės paprastumo:
| Vaidmuo | Tipiniai leidimai |
|---|---|
| Lankytojas | Mato viešus puslapius |
| Narys / klientas | Mato ir redaguoja savo įrašus |
| Darbuotojas | Mato visus savo komandos ar verslo įrašus; negali keisti nustatymų ar mokėjimų |
| Savininkas / administratorius | Viską, įskaitant naudotojus ir mokėjimus |
Taisyklės, kurios svarbesnės už vaidmenų pavadinimus:
- Tikrinkite serveryje kiekvieną kartą. Mygtuko paslėpimas puslapyje niekam neužkerta kelio tiesiogiai kviesti API.
- Riboti pagal savininką. Narys, gaunantis „rezervacija 123“, turėtų ją gauti tik tuo atveju, jei ji jo.
- Naudotojai negali patys pasikelti vaidmens. Profilio atnaujinimuose ignoruokite vaidmens laukus, atsiųstus iš naršyklės.
- Pagal numatytuosius nustatymus – jokios prieigos. Naujiems maršrutams turėtų reikėti prisijungimo, nebent nuspręsite kitaip.
Išbandykite su dviem paskyromis: prisijunkite su viena, užsirašykite įrašo ID, tada prisijunkite su kita ir pabandykite jį atidaryti. Mūsų saugumo kontrolinis sąrašas pateikia visą testą.
Sesijos saugumas
Prisijungus programėlė prisimena naudotoją per sesiją – paprastai per slapuką. OWASP sesijų valdymo gairės rekomenduoja:
- Sesijų slapukai nustatyti su
Secure(tik HTTPS),HttpOnly(nepasiekiami puslapio scenarijams) irSameSite - Naujas sesijos ID išduodamas prisijungus ir vėl, kai keičiamos teisės
- Neaktyvumo laiko limitas ir absoliutus maksimalus galiojimo laikas, taikomi serveryje
- Atsijungimas užbaigia sesiją serveryje, o ne tik ištrina slapuką
- Sesijos panaikinamos, kai naudotojas pakeičia slaptažodį
Prisijungimo žetonų saugojimas naršyklės localStorage dažnas mokymuose, bet jie tampa pasiekiami bet kuriam puslapyje veikiančiam scenarijui; saugūs slapukai žiniatinklio programėlėms paprastai yra geresnis numatytasis pasirinkimas.
Raginimas, apimantis esmę
Pridėk naudotojų paskyras prie šios programėlės. Naudotojai gali užsiregistruoti ir prisijungti el. paštu ir slaptažodžiu arba su Google. Naudok [biblioteka ar tiekėjas], o ne savo autentifikavimo kodą. Maišyk slaptažodžius su Argon2id arba bcrypt. Pridėk slaptažodžio atstatymą el. paštu su vienkartine nuoroda, kuri baigia galioti per vieną valandą. Laikyk sesijas saugiuose HttpOnly slapukuose. Apsaugok /dashboard ir kiekvieną /api maršrutą, kad juos galėtų naudoti tik prisijungę naudotojai, ir įsitikink, kad naudotojai mato tik savo projektus. Pridėk vaidmenį „admin“, kuris gali matyti visus naudotojus; tik administratoriai gali patekti į /admin, tikrinama serveryje.
Tada patikrinkite: užsiregistruokite, atsijunkite, prisijunkite, atstatykite slaptažodį, pabandykite privatų URL neprisijungę ir kito naudotojo įrašą.
Dažnos klaidos DI kuriamuose prisijungimuose
- Apsauga tik puslapyje. Puslapis nukreipia neprisijungusius naudotojus, bet API grąžina duomenis bet kam.
- Paslaptys naršyklėje. OAuth kliento paslaptys ir autentifikavimo tiekėjo administravimo raktai priklauso serveriui.
- Peržiūros ir tiesioginiai URL sumaišyti. Google nukreipimo URI arba atstatymo el. laiško nuoroda veda į peržiūrą, todėl po publikavimo prisijungimas nustoja veikti.
- Nėra el. pašto patvirtinimo. Bet kas gali užsiregistruoti kaip anyone@company.com. Patvirtinkite el. paštą prieš suteikdami bet ką, susijusį su tuo adresu.
- Testuojama tik sėkmingas kelias. Išbandykite neteisingus slaptažodžius, pasibaigusias nuorodas ir antrą paskyrą.
Prisijungimo pridėjimas Mythex
Mythex prisijungimas jūsų programėlės naudotojams yra tai, ką pridedate prie savo programėlės – jis atskiras nuo jūsų pačių Mythex paskyros. Mythex nesiūlo įmontuoto autentifikavimo produkto, todėl atsinešate autentifikavimo biblioteką ar tiekėją ir jo raktus:
- Pasirinkite būdą – pavyzdžiui, el. paštą ir slaptažodį, saugomus jūsų duomenų bazėje, arba talpinamo tiekėjo SDK.
- Jei naudotojus saugote patys, programėlei reikia duomenų bazės; ją užsakykite pokalbyje arba naudokite
/database. - Tiekėjo raktus įdėkite į projekto paslaptis (
/secretsarba projekto nustatymus). - Naudokite raginimą, panašų į aukščiau pateiktą, tada išbandykite Preview. Prisijungimui su Google pridėkite nukreipimo URI ir peržiūros, ir publikuoto adreso.
Žr. Pridėti prisijungimą prie programėlės dokumentacijoje. Jei kuriate mokamą produktą, kaip sukurti SaaS MVP aprašo paskyras ir mokėjimus kartu.
Klausimai
Koks paprasčiausias prisijungimas, kurį galima pridėti prie programėlės?
Paprasčiausia ir saugiausia dažniausiai naudoti talpinamą autentifikavimo tiekėją arba gerai prižiūrimą autentifikavimo biblioteką, nes sesijos, slaptažodžių saugojimas ir atstatymas jau tvarkomi. Prisijungimas su Google yra mažiausiai trukdantis variantas naudotojams, turintiems Google paskyras.
Ar magiškos nuorodos saugesnės už slaptažodžius?
Jos pašalina slaptažodžių pakartotinį naudojimą ir silpnus slaptažodžius, bet riziką perkelia į naudotojo el. pašto paskyrą. Nuorodos turėtų greitai baigti galioti ir veikti tik vieną kartą. Daugumai mažų programėlių jos – priimtinas pasirinkimas, dažnai siūlomas kartu su prisijungimu per Google.
Ar man reikia Google patvirtinimo, kad pridėčiau prisijungimą su Google?
Jei prašote tik pagrindinės prisijungimo informacijos (vardo, el. pašto ir profilio), Google sako, kad programos patvirtinimas nėra privalomas, nors vis tiek turite sukonfigūruoti sutikimo ekraną ir OAuth klientą. Prašymas leisti prieigą prie jautrių duomenų, pavyzdžiui, Gmail ar Drive, reikalauja Google programos patvirtinimo.
Kuo skiriasi prisijungimas ir leidimai?
Prisijungimas (autentifikavimas) patvirtina, kas yra naudotojas. Leidimai (autorizavimas) nusprendžia, ką tas naudotojas gali matyti ir daryti. Programėlei reikia abiejų, o leidimai turi būti tikrinami serveryje kiekvienai užklausai.