Vadovai

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ūdasKaip veikiaPrivalumaiTrūkumai
El. paštas ir slaptažodisNaudotojas sukuria slaptažodį; jūs saugote jo maišąPažįstamas, veikia be internetoSlaptažodžių atstatymas, pakartotinis naudojimas, nutekėjimai; slaptažodžius privalote saugoti saugiai
Magiška nuorodaNaudotojas įveda el. paštą ir spaudžia nuorodą, kurią jūs išsiųsiteNereikia saugoti ar pamiršti slaptažodžiųPriklauso nuo el. laiško pristatymo; prisijungimas lėtesnis
Vienkartinis kodasNaudotojas įveda el. paštą ir surašo 6 skaitmenų kodąVeikia, kai nuorodos atidaromos netinkamoje naršyklėjeTa pati priklausomybė nuo el. pašto
Socialinis / OAuth (Google, Apple, GitHub, Microsoft)Kitas tiekėjas patvirtina, kas yra naudotojasGreičiausias naudotojams; jums nereikia saugoti slaptažodžioNaudotojams 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:

  1. Sukurkite arba pasirinkite projektą ir užpildykite Branding puslapį – ką naudotojai mato sutikimo ekrane (programėlės pavadinimas, palaikymo el. paštas, logotipas).
  2. Puslapyje Clients sukurkite klientą tipo „Web application“.
  3. Pridėkite authorized JavaScript origins ir redirect URIs – tikslius adresus, kuriuose veikia jūsų programėlė ir į kuriuos Google grąžina naudotojus po prisijungimo.
  4. 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, įskaitant http ar https, 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 localhost kūrimo metu.
  • Parametras state turi 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ūdasPavyzdžiaiKada tinka
Talpinamas autentifikavimo tiekėjasPaslaugos, kurios talpina prisijungimą, naudotojų valdymą ir sesijas už jusNorite, kad prisijungimas greitai veiktų su mažesne saugumo atsakomybe
Autentifikavimo biblioteka jūsų programėlėjeAtvirojo kodo bibliotekos jūsų sistemaiNorite 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:

VaidmuoTipiniai leidimai
LankytojasMato viešus puslapius
Narys / klientasMato ir redaguoja savo įrašus
DarbuotojasMato visus savo komandos ar verslo įrašus; negali keisti nustatymų ar mokėjimų
Savininkas / administratoriusViską, į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) ir SameSite
  • 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:

  1. Pasirinkite būdą – pavyzdžiui, el. paštą ir slaptažodį, saugomus jūsų duomenų bazėje, arba talpinamo tiekėjo SDK.
  2. Jei naudotojus saugote patys, programėlei reikia duomenų bazės; ją užsakykite pokalbyje arba naudokite /database.
  3. Tiekėjo raktus įdėkite į projekto paslaptis (/secrets arba projekto nustatymus).
  4. 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.

Mythex · Pricing · Kurkite bet ką su dirbtiniu intelektu · Svetainių ir programėlių šablonai · Mythex palyginimas · Programėlių kūrimo su dirbtiniu intelektu žodynėlis · Nemokami programėlių kūrimo su dirbtiniu intelektu įrankiai · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)