Ukulandelela ukungena kwe-OmniAuth nge-proxy
Landela ukwedluliswa kwesiphequluli nokushintshwa kwethokheni ohlangothini lwe-Rails ukuze ulungiselele i-proxy ezicelweni eziyidingayo.
Umsebenzisi ucindezela u-“Sign in”, afinyelele ikhasi lomhlinzeki bese ebuyela ku-Rails. Isinyathelo esilandelayo sisengase sihluleke ngoba siqala uxhumano olusha olusuka kuseva ye-Rails.
browser → provider authorization page → browser callback to Rails
Rails → provider token endpoint → Rails
Isiphequluli silandela ukwedluliswa kwemvume ngokulungiselelwa kwakho kwenethiwekhi, kanti i-Rails yenza ukushintshwa kwethokheni emzileni wangemuva nge-HTTP client ekhethwe isu le-OmniAuth elifakiwe. Umsebenzi ogijima ngemuva kwe-proxy yenkampani udinga leyo ndlela ezicelweni zakhe eziya kumhlinzeki.
I-OAuth 1.0 nayo inesinyathelo sethokheni yesicelo ohlangothini lweseva ngaphambi kokuba umsebenzisi agunyaze ukufinyelela. Ukugeleza kwekhodi yemvume ye-OAuth 2.0 kunokushintshwa kwethokheni kwayo ngemuva kwe-callback. Ukulandelana okuqondile kuncike eswini, kodwa isiphequluli neseva yohlelo lokusebenza kuhlala kuyizindawo zokuqala ezihlukene.
Thola ukulungiselelwa kwe-client
Landela isu uze ufike ku-HTTP client ethumela ithokheni yayo nezicelo ze-API zomhlinzeki. Sebenzisa inketho ye-proxy ebhaliwe yaleyo client. Amanye amasu adlulisela izinketho ze-client kumtapo wezincwadi we-OAuth; amanye alungiselela uxhumano lwe-HTTP ngaphansi kwawo. Inketho eyamukelwa isu elilodwa ayibi yinketho ye-OmniAuth eyabiwe ngokuzenzakalela.
Vumela ama-URL emvume, ethokheni ne-callback omhlinzeki achaze izinsizakalo zakhe zangempela. I-proxy ephumayo iyisilungiselelo sokuthutha ukuze kufinyelelwe kumhlinzeki, hhayi ikheli le-callback elingena esikhundleni noma inkambu efakwa kumapharamitha wesicelo se-OAuth.
Lapho ulandelela ukungena, marka isinyathelo sokugcina esiqediwe. Ikhasi lokungena lomhlinzeki elibonisiwe lifakazela ukuthi indlela yesiphequluli yasebenza. I-callback etholwa yi-Rails ifakazela ukuthi isiphequluli sabuya. Isicelo sethokheni esilandelayo siyindawo yokuhlola uxhumano lwe-proxy, inselelo noma impendulo yomhlinzeki evela enqubweni ye-Rails.