qwerty Posted December 18, 2014 Report Share Posted December 18, 2014 Mēģinu saprast, kā strādā draugiem.lv pase, bet es nesaprotu kāda ir saistība starp sesiju uz mana domēna un uz draugiem.lv domēna. Tātad viņi iesaka lietot https://github.com/Draugiem/draugiem-php-sdkTajā ir funkcija ->getSession(), kas kaut kā maģiski nosaka, vai lietotājs ir ielogojies, vai nav, 1. Savā example.com nospiežu uz pogas "Ienākt ar draugiem.lv pasi" 2. Mani redirekto uz draugiem.lv. 3. Ievadu savus datus 4. Draugiem.lv serveris pārbauda, vai tie ir pareizi 5. Mani redirekto atpakaļ uz example.com 6. ->getSession() tagad zina, ka esmu ielogojies Pēc manas saprašanas, pēc ielogošanas draugiem.lv, viņu serveris man izveidoja sesiju un cookie ar sesijas ID. Uz sava example.com man ir jāizveido pašam sava sesija. Bet ja mani redirekto atpakaļ uz example.com, tad draugiem.lv cookie nenonāk līdz example.com, jo pieder draugiem.lv. Tad kā tā funkcija zina, ka esmu ielogojies? Kur es kļūdos? Kas pie šāda autorizēšanās modeļa man jāglabā example.com datubāzes tabulā ar informāciju par lietotājiem? Draugiem.lv user_id ? Ja lietoju PHP platformu, kas neizmanto built-in sesijas, bet encrypted cookies, tad vai es varu sasaistīt to ->getSession ar savu mehānismu? Quote Link to comment Share on other sites More sharing options...
briedis Posted December 18, 2014 Report Share Posted December 18, 2014 1. Tu spied linku, notiek redirekts 2. Tu ielogojies draugiem.lv 3. Draugiem.lv tevi redirektē atpakaļ uz example.com, bet urlī padod kaut kādu tokenu: example.com?token=blablablabal 4. example.com lapā draugu libs nolasa šo tokenu, un sazinās pa taisno ar serveri, noskaidro kāds lietotājs atbilst šim tokenam. Ja viss ok, tad tiek pa taisno no servera iegūti lietotāja dati un izveidota sesijas uz example.com Visa vajadzīgā infa tiek nodota caur urli redirekta brīdī, nekādi cepumi nekur nelidinās starp domēniem. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.