OAuth ni Nini? "Ingia kwa Google" na Ufikiaji Uliokabidhiwa Ukifafanuliwa
OAuth ni kiwango huria kinachomruhusu mtumiaji kumpa app moja ufikiaji mdogo wa akaunti yake kwenye huduma nyingine, bila kukabidhi nywila yake. Unapobofya "Connect Google Calendar" na kuona skrini inayouliza "Ruhusu app hii kuona matukio yangu?", hiyo ni OAuth. App inapata tokeni kwa kile ulichoidhinisha tu, ambacho unaweza kukifuta muda wowote. Mashine hiyo hiyo, pamoja na tabaka la ziada linaloitwa OpenID Connect, ndiyo inayoendesha "Sign in with Google" na vitufe vinavyofanana.
Kwa nini OAuth ni muhimu unapojenga kwa AI
OAuth inaonekana katika hali mbili za kawaida unapojenga app:
- Kuingia kwa mitandao ya kijamii. Unataka watumiaji wako "waingie kwa Google" (au Apple, Microsoft, GitHub) badala ya kuunda nywila nyingine. Tazama jinsi ya kuongeza kuingia kwenye app yako.
- Kuunganisha kwenye akaunti za watumiaji kwenye huduma nyingine. App yako inahitaji kusoma kalenda ya mtumiaji, kuchapisha kwenye akaunti yake ya mitandao ya kijamii, kuvuta mafaili kutoka hifadhi yake ya wingu, au kusawazisha data yake ya uhasibu.
Katika hali zote mbili, zana yako ya AI inaweza kuandika msimbo, lakini hatua zingine ni za kwako tu: kuunda app ya msanidi na mtoa huduma, kupata client ID na client secret, kusajili URL za callback na, kwa baadhi ya ruhusa, kupitisha ukaguzi wa mtoa huduma. Kujua jinsi OAuth inavyofanya kazi kunafanya hatua hizo — na hitilafu zinazozalisha — kueleweka zaidi. Kwa picha kubwa ya kuingia, tazama uthibitishaji ni nini.
Mfano wa kila siku
Fikiria kadi ya funguo ya hoteli. Wakati wa kuingia, mapokezi yanathibitisha wewe ni nani, kisha yanakupa kadi inayofungua chumba chako na ukumbi wa mazoezi — si vyumba vingine, wala maeneo ya wafanyakazi — na inaacha kufanya kazi unapotoka. Kadi haina pasipoti yako. Ukiipoteza, mapokezi yanaifuta na kukupa nyingine.
- Mapokezi ndiyo seva ya idhini (ukurasa wa kuingia wa Google).
- Ukaguzi wa kitambulisho chako ni wewe kuingia kwenye Google.
- Kadi ya funguo ni tokeni ya ufikiaji.
- "Chumba na ukumbi wa mazoezi pekee" ni scopes ulizoidhinisha.
- Kutoka ni tokeni kuisha muda, au wewe kufuta ufikiaji.
App unayoitumia haioni nywila yako ya Google kamwe, bali kadi ya funguo pekee.
OAuth inavyofanya kazi, hatua kwa hatua
Mtiririko unaotumika zaidi kwa apps za wavuti ni authorization code flow. Hivi ndivyo inavyotokea mtumiaji anapounganisha Kalenda yake ya Google kwenye app ya kupanga ratiba:
- Bofya. Mtumiaji anabofya "Connect Google Calendar."
- Elekeza kwa mtoa huduma. App inatuma kivinjari kwa Google kikiwa na client ID yake, scopes inazotaka (kusoma matukio ya kalenda) na redirect URI ambapo Google inapaswa kumrudisha mtumiaji.
- Ingia na ukubali. Mtumiaji anaingia Google (ikiwa bado hajaingia) na kuona skrini ya ridhaa inayoorodhesha kile app inachoomba. Anabofya Allow.
- Rudi na msimbo. Google inaelekeza kivinjari kwenye redirect URI ya app pamoja na authorization code ya muda mfupi, ya matumizi moja.
- Badilisha kwenye seva. Seva ya app inatuma msimbo huo, pamoja na client secret yake, moja kwa moja kwa Google na inapokea access token (na mara nyingi refresh token).
- Tumia API. Seva inaita API ya Google Calendar kwa access token na kupata matukio ya mtumiaji.
Callback ya hatua ya 4 inaonekana hivi:
https://yourapp.com/auth/google/callback?code=4/0Adeu5B...&state=x7Kq9
Na jibu la tokeni la hatua ya 5 ni JSON kama hii:
{
"access_token": "ya29.a0Af...",
"expires_in": 3599,
"refresh_token": "1//0gL...",
"scope": "https://www.googleapis.com/auth/calendar.readonly",
"token_type": "Bearer"
}
Jambo muhimu la muundo: ubadilishaji wa tokeni unafanyika seva-kwa-seva, kwa hiyo client secret na tokeni hazihitaji kupita kwenye kivinjari kamwe.
OAuth dhidi ya OpenID Connect dhidi ya kuingia kwako mwenyewe
| Inajibu nini | Mfano | |
|---|---|---|
| OAuth 2.0 | "App hii inaruhusiwa kufanya nini kwa niaba ya mtumiaji?" (idhini) | Kusoma kalenda ya mtumiaji |
| OpenID Connect (OIDC) | "Mtumiaji huyu ni nani?" (uthibitishaji), imejengwa juu ya OAuth | "Sign in with Google" inayorudisha barua pepe iliyothibitishwa |
| Kuingia kwako mwenyewe | "Je, hii ni nywila sahihi ya akaunti hii?" | Barua pepe na nywila iliyohifadhiwa (kwa hashi) kwenye database yako |
Apps nyingi huunganisha zote: kuingia kwa barua pepe na nywila, pamoja na "Sign in with Google" kupitia OIDC, pamoja na miunganisho tofauti ya OAuth kwenye huduma nyingine.
Istilahi muhimu
| Istilahi | Maana |
|---|---|
| Mtoa huduma / seva ya idhini | Huduma ambayo mtumiaji anaingia na kutoa ufikiaji — Google, Microsoft, GitHub. |
| Client | App yako, kama ilivyosajiliwa kwa mtoa huduma. |
| Client ID | Kitambulisho cha umma cha app yako kwa mtoa huduma. |
| Client secret | Nywila ya faragha ya app yako kwa mtoa huduma. Ya seva pekee. |
| Scope | Ruhusa mahususi, kama "kusoma kalenda" au "kuona anwani ya barua pepe." |
| Skrini ya ridhaa | Ukurasa ambapo mtumiaji anaona na kuidhinisha scopes zilizoombwa. |
| Redirect URI / URL ya callback | Mahali ambapo mtoa huduma anamrudisha mtumiaji. Ni lazima isajiliwe mapema na ilingane kabisa. |
| Access token | Kitambulisho cha muda mfupi cha kuita API. |
| Refresh token | Kitambulisho cha muda mrefu zaidi cha kupata tokeni mpya za ufikiaji. Hifadhi kama nywila. |
| ID token | Katika OIDC, tokeni iliyosainiwa inayoeleza mtumiaji ni nani. |
| PKCE | Ukaguzi wa ziada ("proof key") unaozuia misimbo iliyonaswa kutumika. Unapendekezwa kwa wateja wote. |
| state | Thamani ya nasibu inayolinda mtiririko dhidi ya maombi ghushi. |
Dhana potofu za kawaida
- "OAuth ni mfumo wa kuingia." OAuth tupu hutoa ufikiaji; OpenID Connect ndiyo inayoshughulikia utambulisho. Kutumia tokeni ya ufikiaji peke yake kama uthibitisho wa nani mtu ni kumesababisha hitilafu halisi za usalama.
- "App inapata nywila yangu." Haipati kamwe. Hilo ndilo lengo.
- "Kuomba scopes zaidi hakuna madhara." Watumiaji wana tahadhari zaidi na maombi mapana, na watoa huduma kama Google wanaweza kuhitaji ukaguzi wa app kwa ruhusa nyeti au zilizozuiliwa. Omba unachohitaji tu.
- "Client secret inaweza kuwekwa upande wa mbele." Chochote kilicho kwenye msimbo wa kivinjari ni cha umma. Kiweke kwenye siri za upande wa seva.
- "Ikifanya kazi kwenye majaribio, itafanya kazi kwenye uzalishaji." Watoa huduma mara nyingi hupunguza apps ambazo hazijakaguliwa — kwa mfano, kwa watumiaji wa majaribio walioorodheshwa — na URL ya kuelekeza ya kikoa chako cha moja kwa moja lazima isajiliwe kando.
- "Tokeni hudumu milele." Tokeni za ufikiaji huisha haraka, na watumiaji wanaweza kufuta ufikiaji. App yako lazima ishughulikie yote mawili kwa upole.
Unachoweza kumwomba mjenzi wako wa AI
- "Ongeza 'Sign in with Google' kwa kutumia OpenID Connect na maktaba ya uthibitishaji iliyotunzwa vizuri — usiandike mtiririko wa OAuth kwa mkono."
- "Tumia authorization code flow pamoja na PKCE na uangalie kigezo cha
state." - "Soma client ID na client secret kutoka vigezo vya mazingira upande wa seva."
- "Omba scopes tunazohitaji tu: ufikiaji wa kusoma kalenda pekee."
- "Niambie kila URL ya kuelekeza ninayohitaji kusajili kwenye dashibodi ya mtoa huduma — kwa onyesho la kukagua, URL iliyochapishwa na kikoa changu maalum."
- "Hifadhi refresh tokens kwa usimbaji kwenye database, na ushughulikie tokeni zilizoisha muda au zilizofutwa kwa kumwomba mtumiaji aunganishe tena."
- "Ruhusu watumiaji kutenganisha muunganisho kutoka ukurasa wao wa mipangilio."
OAuth kwenye Mythex
Mythex haina kuingia kwa watumiaji wa mwisho kwa apps unazojenga; nyaraka zake zinaeleza mbinu ya "leta yako mwenyewe" — unachagua maktaba ya uthibitishaji au mtoa huduma aliyeandaliwa, unahifadhi funguo zake kama siri za mradi, na wakala anaandika msimbo. Kichocheo cha kuongeza uthibitishaji kina maelekezo ya kuanzia kwa hili. Pia utakutana na OAuth ndani ya Mythex yenyewe: unaweza kujisajili kwa Google, kuunganisha GitHub kwa usawazishaji wa hazina hutumia GitHub OAuth, na wasaidizi wa AI wanaounganika na Mythex kupitia MCP hupitia ukurasa wa ridhaa wa OAuth. Kwa zaidi, tazama uthibitishaji ni nini na uthibitishaji wa hatua mbili ni nini.
Maswali
OAuth kwa maneno rahisi ni nini?
OAuth ni njia ya kawaida kwa mtumiaji kuruhusu app moja kufikia akaunti yake kwenye huduma nyingine — kama kuruhusu app ya kupanga ratiba isome Kalenda yake ya Google — bila kutoa nywila yake kwa app hiyo. Mtumiaji anaidhinisha ruhusa mahususi, na app inapokea tokeni anayoweza kuitumia kwa ruhusa hizo tu.
Je, OAuth ni sawa na "Ingia kwa Google"?
"Ingia kwa Google" imejengwa juu ya OAuth 2.0 pamoja na OpenID Connect, tabaka linaloongezwa juu ya OAuth linaloongeza njia ya kawaida ya kumwambia app ni mtumiaji yupi. OAuth yenyewe inahusu kutoa ufikiaji; OpenID Connect ndiyo inayoifanya kuwa kuingia.
Tokeni ya ufikiaji ya OAuth ni nini?
Tokeni ya ufikiaji ni kitambulisho ambacho app inakituma kwa API ya huduma ili kuthibitisha kwamba imepewa ufikiaji. Kwa kawaida ina muda mfupi na inadhibitiwa na ruhusa (scopes) ambazo mtumiaji alizoidhinisha. Tokeni ya kuonyesha upya, ikitolewa, inaruhusu app kupata tokeni mpya za ufikiaji bila kumwuliza mtumiaji tena.
redirect_uri_mismatch inamaanisha nini?
Inamaanisha URL ya callback ambayo app yako ilituma wakati wa kuingia haifanani kabisa na ile iliyosajiliwa kwenye dashibodi ya msanidi ya mtoa huduma. Ongeza URL kamili — ikijumuisha https, kikoa, njia na slash ya mwisho ikiwepo — kwa kila anwani ambayo app yako inaendeshwa.
Je, OAuth ni salama?
OAuth 2.0 inatumika sana na ni salama inapotekelezwa vizuri: kutumia authorization code flow pamoja na PKCE, URL kamili za kuelekeza, kigezo cha state, na kuweka client secret na tokeni upande wa seva. Matatizo mengi hutokana na njia za mkato wakati wa utekelezaji, ndiyo maana kutumia maktaba iliyotunzwa vizuri kunapendekezwa.