Miongozo

Uthibitishaji ni Nini? Logins, Sessions na OAuth Zilivyoelezwa

Uthibitishaji ni jinsi app inavyothibitisha mtumiaji ni nani — kwa kawaida kwa kukagua kitu anachokijua (password), kitu alichonacho (msimbo unaotumwa kwenye simu au email), au utambulisho kutoka huduma nyingine inayoaminika (kama “Sign in with Google”). Mara mtumiaji anapothibitishwa, app inamkumbuka kwa session au token ili asilazimike kuingia kila ukurasa. Kuamua mtumiaji huyo anayejulikana anaruhusiwa kufanya nini ni hatua tofauti inayoitwa ruhusa (authorization).

Kwa nini ni muhimu unapojenga na AI

Kuongeza login ni mojawapo ya maombi ya kawaida kwa AI builder, na pia moja ya rahisi kukosea kwa hila. Ukurasa wa login ni rahisi kuzalisha. Kazi ngumu ni kila kitu kinachouzunguka:

  • Je, passwords zinahifadhiwa kwa usalama?
  • Je, kila ukurasa wa faragha na kila API endpoint kweli inakagua anayeomba?
  • Je, mteja aliyeingia anaweza kuona data ya mteja mwingine kwa kubadilisha namba kwenye URL?
  • Nini kinatokea mtu akisahau password yake?

App inaweza kuonekana salama kabisa huku ikishindwa katika yote hayo. Kuelewa sehemu zinazosonga kunakusaidia kuuliza maswali sahihi na kujaribu mambo sahihi.

Mfano wa kila siku

Fikiria kuingia hoteli.

Kwenye dawati la mapokezi unaonyesha kitambulisho. Hiyo ni uthibitishaji: kuthibitisha wewe ni nani. Mpokeaji kisha anakupa kadi ya ufunguo. Kadi hiyo ni session yako: kwa muda wote wa kukaa hutaonyesha kitambulisho tena; unagusa kadi tu.

Kadi inafungua chumba chako, gym na lifti ya ghorofa yako — lakini si vyumba vya wageni wengine wala ofisi ya wafanyakazi. Hiyo ni ruhusa: utambulisho wako unaruhusiwa kufikia nini. Ukipoteza kadi, hoteli inaweza kuizima kwenye dawati (kubatilisha session). Ukiondoka, inaacha kufanya kazi (kutoka au kuisha muda).

“Sign in with Google” ni kama hoteli inayokubali barua kutoka kwa mshirika anayeaminika ikisema “huyu ndiye mtu huyu,” badala ya kukukagua kitambulisho yenyewe.

Njia kuu za login

NjiaInavyofanya kaziFaidaHasara
Email + passwordMtumiaji anachagua password; app inahifadhi hash yakeInafahamika, hakuna utegemezi wa njeLazima uhifadhi hashes kwa usalama na ushughulikie kuweka upya
Magic link / msimbo wa mara mojaApp inatuma kiungo au msimbo wa email unaomwingiza mtumiajiHakuna passwords za kuvuja au kusahaulikaInategemea uwasilishaji wa email; kuingia ni polepole zaidi
Social login (OAuth / OpenID Connect)Mtumiaji anaingia kwa Google, Apple, GitHub n.k.Haraka kwa watumiaji; wewe huhifadhi password yoyoteUsanidi na kila mtoa huduma; watumiaji wasio na akaunti hizo
Hosted auth providerHuduma kama Clerk, Auth0 au Supabase Auth inashughulikia usajili, login na kuweka upyaKazi ndogo ya usalama kwakoGharama ya kila mwezi ukikua; utegemezi mwingine
Multi-factor (MFA / 2FA)Hatua ya pili baada ya ya kwanza, kama msimbo wa authenticator appNi vigumu zaidi kuvunjwaMsuguano kidogo zaidi

Passwords zinapaswa kuhifadhiwa vipi

App salama haihifadhi password yako halisi kamwe. Badala yake huhifadhi hash: matokeo ya kazi ya njia moja inayogeuza password kuwa mfuatano usiobadilika. Unapoingia, app inahash kile ulichoandika na kulinganisha matokeo na hash iliyohifadhiwa.

Mambo mawili yanaifanya iwe salama:

  • Salt — thamani ya kubahatisha inayoongezwa kwenye kila password kabla ya kuhash, ili watu wawili wenye password moja wapate hashes tofauti, na majedwali ya kutafuta yaliyotayarishwa awali yasifae.
  • Algorithm ya polepole iliyoundwa kwa passwords — kama Argon2, bcrypt au scrypt. Hashes za madhumuni ya jumla kama MD5 au SHA-256 ni za haraka mno peke yake; washambuliaji wanaweza kujaribu mabilioni ya makisio.

Hashing si sawa na encryption. Data iliyosimbwa inaweza kufunguliwa kwa key; hash ya password imeundwa isiweze kurudishwa kabisa.

Sessions dhidi ya tokens

Baada ya login, app inahitaji kukutambua kila ombi. Kuna njia mbili za kawaida.

Session (cookie)Token (k.m. JWT)
Browser inashikilia niniSession ID ya kubahatisha kwenye cookieToken iliyosainiwa yenye taarifa za mtumiaji na muda wa kuisha
Hali ya login inaishi wapiKwenye server, kwenye database au storeNdani ya token yenyewe
Kumtoa mtu kila mahaliRahisi: futa session kwenye serverNgumu zaidi: token inabaki hai hadi iishe isipokuwa uweke orodha ya kuzuia
Matumizi ya kawaidaWeb apps za jadiAPIs, mobile apps, huduma zinazozungumza zenyewe

Kwa cookies, mipangilio mitatu ni muhimu: HttpOnly (JavaScript kwenye ukurasa haiwezi kuisoma), Secure (inatumwa kupitia HTTPS pekee) na SameSite (inazuia kuituma kwenye maombi kutoka tovuti nyingine). Kuhifadhi tokens kwenye localStorage ya browser ni jambo la kawaida lakini linazifanya ziwe wazi kwa script yoyote inayoendeshwa kwenye ukurasa.

OAuth na “Sign in with Google”

OAuth 2.0 ni kiwango cha ruhusa iliyokabidhiwa: kinaruhusu app kupata ufikiaji mdogo wa akaunti yako kwenye huduma nyingine — kwa mfano, kusoma kalenda yako ya Google — bila kamwe kuona password yako ya Google. Unatumwa Google, unaidhinisha ruhusa maalum (zinaitwa scopes), na Google inaipa app token kwa ruhusa hizo tu.

OAuth peke yake iliundwa kutoa ufikiaji, si kusema wewe ni nani. OpenID Connect (OIDC) ni safu juu ya OAuth 2.0 inayoongeza utambulisho, ndicho kinachotumiwa na “Sign in with Google” au “Sign in with Apple”. Ili kuisanidi unasajili app yako kwa mtoa huduma na kupata client ID na client secret; secret inakaa kwenye server yako.

Mfano wa vitendo: login kwa portal ya wateja

Tuseme unajenga portal ambapo wateja wa wakala wa usanifu wanaona miradi na ankara zao.

  • Uthibitishaji: wateja wanaingia kwa email na magic link, hivyo hakuna passwords za kusimamia. Wafanyakazi wa wakala wanaingia kwa akaunti za Google Workspace.
  • Roles: kila mtumiaji ana role — client au staff.
  • Kanuni za ruhusa:
KitendoMtejaMfanyakazi
Kuona miradi ya kampuni yakeNdiyoNdiyo
Kuona miradi ya kampuni nyingineHapanaNdiyo
Kupakia faili kwenye mradiMiradi yake pekeeNdiyo
Kuweka ankara kuwa imelipwaHapanaNdiyo
  • Mahali inapotekelezwa: kwenye server, kwa kila ombi. Server inamtafuta mtumiaji aliyeingia, kisha inarudisha miradi tu ambapo project.company_id inalingana na kampuni ya mtumiaji. Kuficha kitufe cha “Mark paid” haitoshi — endpoint yenyewe lazima ikatae.

Maneno ya kawaida yaliyofafanuliwa

NenoMaana
Authentication (AuthN)Kuthibitisha ni nani mtu.
Authorization (AuthZ)Kuamua anaruhusiwa kufanya nini.
SessionApp kukumbuka kuwa umeingia, kati ya maombi.
CookieKipande kidogo cha data ambacho browser inatuma tena kwenye tovuti na kila ombi.
JWTJSON Web Token: token iliyosainiwa, fupi, inayobeba taarifa kama user ID na muda wa kuisha.
Role / permissionLebo kama admin au member zinazoamua ufikiaji.
MFA / 2FAKuhitaji uthibitisho wa pili, kama msimbo kutoka authenticator app.
SSOSingle sign-on: login moja (mara nyingi akaunti ya kampuni) kwa apps nyingi.
401 dhidi ya 403“Wewe ni nani?” (haujathibitishwa) dhidi ya “Huruhusiwi kufanya hilo” (hujaidhinishwa).

Makosa ya kawaida na dhana potofu

  • Kukagua ruhusa kwenye ukurasa tu. Ikiwa browser inaficha kitufe lakini API haikagui, mtu yeyote anaweza kuita API moja kwa moja.
  • Kuamini IDs zilizo kwenye URL. /invoices/1042 lazima ikague kuwa ankara 1042 ni ya mtumiaji aliyeingia.
  • Kuunda crypto yako mwenyewe. Tumia libraries au providers zinazojulikana; usimwache AI ibuni mpango wake wa hashing.
  • Kuweka upya password dhaifu. Viungo vya kuweka upya vinapaswa kutumika mara moja, viishe haraka na visifichue kama email ina akaunti.
  • Kuchanganya login yako na ya builder yako. Watumiaji wa app yako ni tofauti na akaunti yako kwenye zana unayojengea.
  • Hakuna kikomo cha majaribio ya login. Bila hicho, washambuliaji wanaweza kujaribu passwords bila kikomo.

Uulize nini AI builder yako

  • “Ongeza usajili na login kwa kutumia [library au provider inayojulikana]. Usiandike hashing ya password yako mwenyewe.”
  • “Hifadhi passwords zikiwa zimehashiwa kwa bcrypt au Argon2.”
  • “Tumia cookies za HttpOnly na Secure kwa session.”
  • “Ongeza roles: admin na member. Orodhesha kila endpoint na roles zinazoruhusiwa kuiita.”
  • “Lazimisha kwenye server kwamba watumiaji wanaweza kusoma na kuhariri rekodi zao tu. Kisha nionyeshe jinsi ulivyokagua.”
  • “Ongeza kuweka upya password kwa viungo vya mara moja vinavyoisha baada ya saa moja.”
  • “Weka kikomo cha majaribio ya login.”

Kisha jaribu mwenyewe: fungua akaunti mbili na ujaribu kufikia data ya mmoja ukiwa umeingia kama mwingine. Mwongozo wa kuongeza login na orodha ya ukaguzi wa usalama zinaenda mbali zaidi.

Uthibitishaji kwenye Mythex

Mythex haitoi bidhaa ya uthibitishaji iliyojengwa ndani kwa watumiaji wa app yako; unachagua mbinu — email na password zilizohifadhiwa kwenye database ya project yako, au SDK ya hosted provider — kisha unamwomba agent aiongeze. Keys za provider huwekwa kama project secrets, si kwenye chat. Hii ni tofauti na jinsi unavyoingia Mythex yenyewe. Recipe ya nyaraka kuhusu kuongeza login kwenye app yako ina starter prompt unayoweza kurekebisha, na API ni nini inaeleza mahali ukaguzi wa upande wa server unapoishi.

Maswali

Kuna tofauti gani kati ya uthibitishaji (authentication) na ruhusa (authorization)?

Uthibitishaji unakagua wewe ni nani, kwa mfano kwa kuthibitisha password yako. Ruhusa (authorization) inaamua unaruhusiwa kufanya nini mara tu unapojulikana, kama kama unaweza kuona ukurasa wa admin au kuhariri booking ya mtu mwingine. Apps zinahitaji vyote viwili.

OAuth ni nini?

OAuth 2.0 ni kiwango kinachoruhusu app kupata ufikiaji mdogo wa akaunti yako kwenye huduma nyingine bila kuona password yako. ‘Sign in with Google’ hutumia OpenID Connect, safu ya utambulisho iliyojengwa juu ya OAuth 2.0, hivyo app hujifunza wewe ni nani kutoka Google.

Je, app yangu ihifadhi passwords?

Kamwe si kwa namna inayosomeka. Ukitumia login ya email na password, passwords lazima zihifadhiwe kama hashes zenye salt zilizotengenezwa kwa algorithm ya polepole iliyoundwa kwa ajili ya passwords, kama Argon2 au bcrypt. Apps nyingi huepuka tatizo hili kwa kutumia hosted auth provider, social login au magic links za email.

Sessions au tokens — app yangu itumie ipi?

Zote zinafanya kazi. Session huhifadhi hali ya login kwenye server na humpa browser ID ya kubahatisha kwenye cookie, ambayo ni rahisi kuibatilisha. Token kama JWT hubeba taarifa zilizosainiwa yenyewe, jambo linalofaa kwa APIs na mobile clients lakini ni vigumu kuifuta kabla ya kuisha muda. Kwa web app ya kawaida, sessions za cookie ni chaguo-msingi zuri.

Mythex · Pricing · Jenga chochote kwa AI · Violezo vya tovuti na programu · Mythex ikilinganishwa · Kamusi ya istilahi za kujenga programu kwa AI · Zana za bure za kujenga programu kwa AI · 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 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių 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 தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)