Àpótí irinṣẹ́ aṣàwákiri fún àwọn iṣẹ́ kékeré tó ń dá iṣẹ́ gidi dúró
Ọ̀pọ̀lọpọ̀ ìṣòro kíkọ kóòdù tóbi, wọ́n sì wúlò. Àwọn tó ń fa ọ dúró ní tòótọ́ kì í ṣe bẹ́ẹ̀. O ní ìdáhùn API tí a fúnpọ̀ níwájú rẹ, JWT tí o kò lè kà, URL tí ó ń bàjẹ́ ọ̀wọ́n ìbéèrè rẹ̀, àti regex tí ó fẹ́rẹ̀ẹ́ ṣiṣẹ́. Ọ̀kọ̀ọ̀kan wọn kò yẹ fún dependency, ìgbà gbígba CLI, tàbí taabu tó kún fún ìpolówó. Wọ́n yẹ fún ìṣẹ́jú àáyá ọgbọ̀n àti àpótí ọ̀rọ̀ tó mọ́.
Ìyẹn ni gbogbo èrò tó wà lẹ́yìn àkópọ̀ yìí: ojú-ìwé kan ṣoṣo ti àwọn irinṣẹ́ olùkọ́ ọ̀fẹ́ tí ó ń ṣí ní ojú-ẹsẹ̀, tí ó ń ṣiṣẹ́ ní kíkún nínú aṣàwákiri rẹ, tí kò sì bèèrè fún ìforúkọsílẹ̀ rárá. Ètò JSON, Base64, ìtọ́sí URL, ìyíyọ JWT, ìyípadà àwọ̀, ìdánwò regex, ìṣirò àkókò ìtẹ̀wé, àti ìtọ́kasí kóòdù ipò HTTP gbogbo wọn ń gbé ní ibi kan náà. O dá dúró ní kíkọ dátà rẹ sínú ohunkóhun tí Google fi hàn ní àkọ́kọ́, o sì dá dúró ní ríronú bóyá ojú-ìwé kan tí kò ní ìdánimọ̀ ń kọ̀wé rẹ sí.
Ohun tí irinṣẹ́ kọ̀ọ̀kan ṣe ní tòótọ́
Ètò JSON máa ń mú ògiri ọ̀rọ̀ JSON kan-ìlà tí a ti fi àmì bò, kí ó sì yí padà sí ohun tí ènìyàn lè yẹ̀wò. Sọ pé webhook kan ń ta, àwọn àkọsílẹ̀ rẹ sì ń mú ara òtítọ́ náà gẹ́gẹ́ bí ọ̀rọ̀ kan ńlá. Dà kọ́ ọ sínú rẹ̀, yan ààlà ẹ̀wọ̀n méjì tàbí mẹ́rin, o sì máa gba igi tí ó lè kà, pẹ̀lú àṣìṣe girama tí a fi hàn bí ó bá sí ọ̀kan. Ó máa ń ṣàyẹ̀wò bí ó ṣe ń ṣètò, nítorí náà kọ́mà tí ó ṣáko tàbí kọ́kọ́rọ́ tí kò ní àmì àyọ̀kọ máa ń farahàn dípò kí ó kùnà láìsọ̀rọ̀ ní ẹ̀ka mẹ́ta jinlẹ̀ sí inú app rẹ.
Ìtọ́sí/ìyíyọ Base64 ni ohun èlò tí o ń lò léraléra láìronú nípa rẹ̀. Data URI, orí ìjẹ́rìí Basic Auth, ìdì bínárì tí a fi sínú fáìlì ètò, àwọn apá àmì kan — gbogbo rẹ̀ jẹ́ Base64. Yí orí ìjẹ́rìí padà láti mọ̀ pé wọ́n ń fi ìwé ìdánimọ̀ ránṣẹ́ ní ọ̀nà tí o retí, tàbí kọ àwòrán kékeré kan sínú ọ̀nà náà. Ó ń mú UTF-8 mọ́, èyí tí ó ṣe pàtàkì ní ìṣẹ́jú tí ìsọfúnni rẹ kò bá jẹ́ ASCII lásán.
Irinṣẹ́ ìtọ́sí/ìyíyọ URL máa ń tún àṣìṣe àtayébáyé ṣe níbi tí ohun-ìní ìbéèrè kan bá ní àyè, àmì àti, tàbí àmì àfikún, tí ó sì ń bàjẹ́ ìbéèrè rẹ láìsọ̀rọ̀. Bí o bá ń kọ́ ìjápọ̀ pẹ̀lú ọwọ́, iye náà sì jẹ́ name=John & Co, o nílò kí a fi àmì àti náà sí %26 kí olùpín má bàa kà á gẹ́gẹ́ bí ìdíyà ọ̀nà-ìní. Dà kọ́, tọ́sí, dàkọ. Ìyíyọ ń ṣiṣẹ́ lápá kejì nígbà tí o bá ń wo URL tí a kọ sínú àkọsílẹ̀ tí ó kún fún kóòdù ìdá kí o sì gbìyànjú láti mọ ohun tí a béèrè ní tòótọ́.

Irinṣẹ́ àmì náà, àti ìkìlọ̀ pàtàkì
Olùyíyọ JWT máa ń pín àmì kan sí àwọn apá mẹ́ta tí àmì ọ̀wọ́ ti pín, ó sì fi orí àti ẹrù náà hàn fún ọ gẹ́gẹ́ bí JSON lásán. Nígbà tí o bá ń ṣàwárí ìṣòro ìjẹ́rìí, èyí wúlò gan-an: ṣàyẹ̀wò algorithm tí ó fi ọwọ́ sí àmì náà, kà sub, ṣàyẹ̀wò pé àṣẹ exp kò tíì kọjá, kí o sì rí ohun tó tọ́ tí ẹnu-ọ̀nà rẹ ń fún oníbàárà ní gan-an.
Èyí ni apá tí àwọn ènìyàn máa ń gbàgbé. Yíyọ JWT kì í ṣe fífi rẹ̀ jẹ́rìí. Ẹrù náà jẹ́ Base64url lásán — ẹnikẹ́ni tí ó ní àmì náà lè kà gbogbo ẹ̀tọ́ inú rẹ̀, irinṣẹ́ yìí sì kàn ṣe bẹ́ẹ̀ àti kò sí ohun mìíràn. Kò ṣàyẹ̀wò àmì náà, nítorí náà àmì tí a ti yọ máa ń sọ ohun tí àmì kan sọ, kì í ṣe bóyá ó jẹ́ gidi. Má gbẹ́kẹ̀lé ẹ̀tọ́ láti ọ̀dọ̀ olùyíyọ fún ìpinnu àṣẹ; ìyẹn iṣẹ́ olùpín rẹ ni, pẹ̀lú kọ́kọ́rọ́ ìforíwọ̀. Lo olùyíyọ láti lóye àti ṣàwárí, kì í ṣe láti ṣàyẹ̀wò rárá.
Olùdánwò regex máa ń parí ọ̀nà tó ń mú ìdààmú jù lọ nínú gbogbo irinṣẹ́. Kọ àpẹẹrẹ rẹ, kọ ọ̀rọ̀ àpẹẹrẹ, kí o sì wo bí àwọn ìbámu ṣe ń tan bí o ṣe ń tẹ̀. A máa ń tò àwọn ẹgbẹ́ àmúgbà jáde, nítorí náà o lè ṣàyẹ̀wò pé ẹgbẹ́ kejì ń mú ọdún náà ní tòótọ́ kì í ṣe gbogbo ọjọ́ náà. Ó sàn ju ìlànà ṣàtúnṣe-fipamọ́-tún-ṣiṣẹ́ ti ṣíṣàyẹ̀wò àpẹẹrẹ kan nínú kóòdù rẹ gidi, ó sì jẹ́ ọ̀nà kánkán láti kọ́ ìdí tí quantifier ọ̀daran fi ń gbé ju bí o ṣe fẹ́.
Ní pípé nǹkan: olùyípadà HEX↔RGB máa ń yí #1a2b3c padà sí rgb(26, 43, 60) àti padà nígbà tí àwọn àmì àwòṣe rẹ àti CSS rẹ kò bá fẹ́ jọ ara wọn. Olùyípadà àkókò Unix máa ń yí 1718900000 padà sí ọjọ́ àti àkókò gidi, èyí tí o máa fẹ́ ní gbogbo ìgbà tí dátàbáésì kan bá tọ́jú àáyá epoch tí ojú rẹ kò lè kà. Àti ìtọ́kasí kóòdù ipò HTTP máa ń fi ọ pamọ́ kúrò nínú síse àṣàyàn bóyá 422 tàbí 409 ni ìdáhùn tó tọ́ nígbà tí ìpè API kan bá lọ sí ìhà tí kò tọ́.

Ìṣiṣẹ́ ládùúgbò, kí o lè dà kọ́ ohun tó ṣe pàtàkì
Èyí ni apá tí ó ṣe pàtàkì jù lọ fún ẹnikẹ́ni tí ó ń fọwọ́ kan dátà iṣẹ́ àṣetúnṣe. Irinṣẹ́ kọ̀ọ̀kan níhìn-ín máa ń ṣiṣẹ́ ní ẹ̀gbẹ́ oníbàárà nínú JavaScript. Ìsọfúnni rẹ kò ní kúrò lórí aṣàwákiri — kò sí gbígbé sórí, kò sí ìrìn àjò padà sí olùpín, kò sí ohun tí a ó kọ. Ìyẹn túmọ̀ sí pé o lè dà kọ́ àmì àṣẹ gidi kan láti ṣàyẹ̀wò ẹ̀tọ́ rẹ̀, yí orí Base64 tí ó ní ìwé ìdánimọ̀ padà, tàbí ṣètò ìdáhùn API tí ó kún fún dátà oníbàárà láìsí kí ó kọjá lórí nẹ́tíwọ̀ọ̀kì. Ṣé o fẹ́ ẹ̀rí? Ṣí àwọn irinṣẹ́ olùkọ́ rẹ, wo taabu nẹ́tíwọ̀ọ̀kì, kí o sì dà kọ́. Kò sí ohun tí o máa rí tí ó jáde. Fún ẹrù dátà tó ṣe pàtàkì, irinṣẹ́ ládùúgbò-nìkan kì í ṣe àfikún; ó jẹ́ ààyò tí ó lè gbára lé nìkan.
Àwọn ìbéèrè tí wọ́n sábà máa ń béèrè
Ṣé àwọn irinṣẹ́ olùkọ́ wọ̀nyí jẹ́ ọ̀fẹ́ ní tòótọ́ láìsí ìforúkọsílẹ̀?
Bẹ́ẹ̀ ni. Ohun èlò kọ̀ọ̀kan jẹ́ ọ̀fẹ́ láti lò, kò nílò àkọọ́lẹ̀, kò sì ní ààlà ìlò. Ṣí ojú-ìwé náà kí o sì bẹ̀rẹ̀ iṣẹ́.
Ṣé dátà mi ń fi ránṣẹ́ sí olùpín kan nígbà tí mo bá lo àwọn irinṣẹ́ wọ̀nyí?
Rárá. Ohun gbogbo ń ṣiṣẹ́ ní ẹ̀gbẹ́ oníbàárà nínú aṣàwákiri rẹ. Ìsọfúnni rẹ kò ní gbé sórí láéláé, nítorí náà o lè dà kọ́ àmì, ìwé ìdánimọ̀, àti ìdáhùn API ìkọ̀kọ̀ ní ààbò.
Ṣé olùyíyọ JWT ń ṣàyẹ̀wò àmì-ìdánimọ̀ àmì náà?
Rárá. Ó kàn ń yọ orí àti ẹrù náà kí o lè kà àwọn ẹ̀tọ́ náà. Yíyọ kì í ṣe ṣíṣàyẹ̀wò. Ṣíṣàyẹ̀wò àmì-ìdánimọ̀ nílò kọ́kọ́rọ́ ìforíwọ̀, ó sì jẹ́ ti olùpín rẹ.
Kí ni ìyàtọ̀ láàrin ìtọ́sí Base64 àti ìṣàṣírí?
Base64 jẹ́ ìtọ́sí, kì í ṣe ìṣàṣírí. Ẹnikẹ́ni lè yí i padà pátápátá, kò sì fúnni ní ààbò kankan. Ó wà láti fi dátà bínárì hàn gẹ́gẹ́ bí ọ̀rọ̀, kì í ṣe láti fi pamọ́.
Ẹ̀yà regex wo ni olùdánwò regex ṣètìlẹ́yìn fún?
Ó ń lo ẹ́ńjìnnì ọ̀rọ̀ déédéé JavaScript tí ó ń ṣiṣẹ́ nínú aṣàwákiri rẹ, pẹ̀lú ìtàn ìbámu tó ń yí padà àti àbájáde ẹgbẹ́ àmúgbà bí o ṣe ń tẹ̀.
Ṣé mo lè ṣètò JSON tí kò tọ́?
Ètò náà á gbìyànjú, bí JSON náà bá sì bàjẹ́, ó máa fi ibi àṣìṣe hàn kí ó sì sọ ohun tí kò tọ́, kí o lè ṣàtúnṣe rẹ̀ kí o sì tún ètò rẹ̀ ṣe.
