x_f | 07:53 - Autentifipiņķerēšanās un vēl kas
Pēdējā laikā vairāki mobilie cibiņi sākuši pieprasīt, lai viņu žūrnāls Cibā
būtu ne vien atjaunojams no mobilā, bet arī lasāms tajā (un citi žūrnāli arī). Tāpēc
laikam kaut kas (mums) būtu jāsāk darīt, jo mans parastais attaisnojums "varbūt
kādreiz maijā" sāk tuvoties maijam.
Doma ir tāda, ka, tā kā pie Cibas iekšām man nav ne iespējas tikt, ne patikas
to darīt, pat ja varētu, tad labākais būtu izmantot īpašu S2 stilu (darbojas,
pievienojot adresei, piem., ?s2id=1234). Kurš man patiesībā jau ir gandrīz
gatavs. Tālāk tas tiktu laists caur PHP skriptu, kas nedaudz apstrādātu saturu,
lai tas būtu WML-atbilstošāks (piemēram, attēlu izmešana utt.), pievienotu
atbilstošo MIME tipu un tas arī gandrīz vai viss. Vēl kārtīgi jāizdomā, ko
darīt ar saitēm (ārējās, <lj user="..">).
Taču tas
viss ir sīkumi, jo pagaidām galvenais būtu piespiest to S2 stilu darboties
uz citiem žūrnāliem. Lieta ar S2 stiliem ir tāda, ka tas ir pielietojams
jebkuram žūrnālam tad, ja lietotājs, kurš to pielieto (lai arī kam tas stils
piederētu), ir iežurnalējies. Ja nav, tad tas iedarbojas tikai uz tā īpašnieka
žūrnālu. Līdz ar to, katru reizi vēršoties pie Cibas, būtu jāautentificējas.
Tas ir iespējams, taču..
Iespēja ir, taču nezinu, kā tā izmantojama, tāpēc jau viss šis puksts te ir.
Jebkurai (man teica jebkurai) žūrnāla lapai lietotājam ir iespējams autentificēties,
izmantojot "Digest Auth". Tas ir, pievienojot adresei "auth=digest" parametru.
Pieprasot šādu URL, serveris prasīs autentificēties, izmantojot challenge-response metodi.
Nu, piemēram, pamēģiniet ../sc_news/?auth=digest vai ../data/atom?auth=digest.
Skaidrs? Ar parastajiem pārlūkiem jau viegli. Un tagad pastāstiet, kā to var
izdarīt PHP skripts.
Ja autentifikācija būtu "clear" (vai "plain", kā nu bija),
tad adrese, ko katru reizi atvērt, būtu apmēram šāda
– http://user:pass@journal.bad.lv/users/lietotajs/?s2id=1234 (nu, kā
parasti izmantojot FTP). Taču, ko darīt ar "Digest Auth", es nezinu.
Kad tiksim galā ar šo, tikai tad būs jēga virzīties tuvāk taustāmākām lietām.
Nu, vai arī varēšu to uzgrūst kādam citam, ja man pilnīgi pieriebsies. :)
Daži paskaidrojumi.
Par challenge-response vairāk var uzzināt
šeit. Īsumā tas nozīmē to, ka serveris vispirms nosūta klientam challenge – teksta
virkni, kas izskatās apmēram šādi – c0:1107093600:611:180:7KhLs5lZAMvtBFZCr32b:762f04000a005e54837643ad177b55fa.
Meh.. Iespējams, ka jāizmanto tikai daļa no tā. Vēl ir pārāk agrs priekš manis.
Jā, pareizi, vispirms ir shēma, tad servera laiks, un tad vēl kaut kas, tad laikam
expire_time, un tad būtu jāizmanto viens no tiem diviem garajiem, tikai viens
no. Nu, jā. Un pēc tam tas response jāaprēķina
pēc formulas
"challenge + MD5_hex(password)" un kopā ar lietotājvārdu jānosūta atpakaļ.
Šī daļa, protams, ir vienkārša, bet man vajag kādu redzēt kādu darbojošos piemēru,
lai pilnībā saprastu, kas un kā.
Kaut kur Cibā kādā kopienā redzēju ideju, ka būtu jāmaina pati Ciba, lai
tā pati izvadītu WML. Nu, piemēram, vēršoties pie wap.journal.bad.lv, tiktu
pie Cibas WAP versijas. Ideja ir laba un iespējama, kaut vai tāpēc, ka tieši
to pašu man ieteica LiveJournal developeri. Taču – atkārtoju vēlreiz,
ka ne mani kāds tam laidīs klāt (pat ja es prastu Perl vairāk par to, ko pašlaik),
ne kāds cits to darīs. Kāpēc? Lūk, tāpēc, ka tieši tā būs. Es zinu labāk! :)
Pie reizes tās lietotāji varētu pastāstīt, kas vēl būtu jādara ar Cibas WAP
apdeitošanas iespēju.
Pagājušās nedēļas beigās to nedaudz uzlaboju, un
tur beidzot parādījās saite, lai uzreiz varētu ziņu publicēt, bet nebūtu
jālien kaut kur pie "Īsceļiem" ("Shortcuts"). Lai gan tur līst vēl var, jo,
ja ir garš teksts, tad nav jāritinās līdz pašai apakšai. Tāpēc jau tas tā bija
domāts.
Pašlaik aktīvi domāju, kā nodrošināt, lai nebūtu ne mazākās iespējas vienu
ierakstu publicēt divreiz pēc kārtas. Tā ir maza iespēja, taču pastāv. Ja nu
kādam gadījies, tad ļoti atvainojos. Neviens gan man nav sūdzējies.
Ja kāds vēlas padalīties pieredzē, es būšu pateicīgs uzklausīt idejas. Līdz
šim wasted pasvieda dažas saites, no kurām viena liekas noderīga,
un scope izteica kādu ideju ar redirektēšanu. Tās abas atrodamas
šeit. Kamēr es vēl neko neesmu pasācis, varat man ieteikt kaut ko no sevis.
Ņemot vērā, ka ne visi mobilie pārlūki varētu saprast piespiedu redirektēšanu
uz citu lapu, sakarīgāks liekas variants ar unikāla stringa piešķiršanu katrai
publikācijai (formas lapā iekļaut unikālu simbolu virkni un tad
skatīties, lai publicējot tā, piemēram, vienas dienas laikā neatkārtotos).
Taču – kamēr
es vēl neko nedaru, apgaismojiet, lūdzu, mani ar citām iespējām.
Vai ir vēl kas, kas man būtu jāmaina, bet līdz šim neviens par to man nav
ieminējies? Vispār?
|