ArnisR Posted January 16, 2013 Report Share Posted January 16, 2013 Tātad mājas lapā ir reģistrācijas/autorizācijas sistēma. Tagad ir vajadzība šo sistēmu papildināt ar sociālo tīklu (Facebook, Draugiem, Twitter) autorizāciju. 1) Kādā veidā strukturizēt `users` tabulu datubāzē? Vai katra soc. tīkla profilu veidot kā jaunu lietotāju vai kā citādi? 2) Kā organizēt soc. tīkla piesaisti esošajam mājas lapas profilam? 3) Vai pēc API pieprasījuma saņemtos datus pēc katras autorizācijas atjaunot arī DB? Varbūt vēl kādi ieteikumi, nianses, kas jāņem vērā īstenojot šādu sistēmu? Paldies! Quote Link to comment Share on other sites More sharing options...
F3llony Posted January 16, 2013 Report Share Posted January 16, 2013 1) Pamatā, lietotāju datiem no ārējā api būtu jābūt savās tabulās, katram api atsevišķi. Tālāk relāciju tabulas - vai api konts piesiets esošam lietotājam, vai arī nē. Atkarībā no esošās autentifikācijas sistēmas un projekta kompleksitātes ir divi varianti - pārrakstīt autorizēto lietotāju iespējas ar iespēju darboties ar "virtuāliem" lietotājiem no citiem api vai arī pie pirmās autorizācijas caur api pārbaudīt vai api tabulā esošajam lietotājam ir relācija ar "virtuālo lietotāju" jau esošo lietotāju tabulā. Ja ne - izveidojam ierakstu lietotāju tabulā, piemēram, bez paroles un katru reizi kad lietotājs autentificējas no api, atjauninām datus pret api esošajiem lietotāju tabulā un autentificējam izmantojot sesiju/citus mehānismus. 2) Ar relācijām. Skat. 1. 3) Jā, katru reizi, kad lietotājs autentificējas datus no api vajadzētu ielādēt savā ierakstā. Api lietotājus identificē pēc idiem, kuri tev būs jāpieglabā tabulās katram api. Ņem vērā to, ka nevajag visu bāzt vienā maisā - tu pilnīgi noteikti negribi milzīgu users tabulu ar 100 kolonnām un vēl sazin ko. Normalizācija ir common pasākums zema pieprasījuma ratio sistēmās, jo diez vai tev jēl kādreiz nāksies mērogot šīs tabulas un pat ja nāksies - šajā gadījumā tas būs vieglāk izdarāms ar izdalītām tabulām. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted January 16, 2013 Report Share Posted January 16, 2013 Jauta tabula ar kolonām: `id`, `user_id` (rāda uz `users`.`id`), `name` (piemēram, "twitter", "facebook"), `token` utml.. Quote Link to comment Share on other sites More sharing options...
ArnisR Posted January 16, 2013 Author Report Share Posted January 16, 2013 Paldies par padomiem! Tad man vēl dažas neskaidrības: Pieņemsim lietotājs ir reģistrējies un savam profilam piesastījis vairākus soc. tīklus. Ja šis lietotājs veic kaut kādas darbības, piemēram, pievieno komentāru, kur uzrādās viņa vārds/uzvārds un foto u.tml., tad kurš vārds/uzvārds būtu jāizvada? Tas, kurš atbilst tam soc. tīklam, ar kuru tika veikta autorizācija un veikta darbība? Bet tādā gadījumā sanāk, ka tie jau ir vairāki lietotāji, jo tie user'a dati soc. tīklos atškiras. Kā būt šajā gadījumā? Un vēl - kā būt ar foto/avatariem? Tie labāk jāpārkopē un jāuzglabā savā serverī vai kā ctādi? Quote Link to comment Share on other sites More sharing options...
F3llony Posted January 16, 2013 Report Share Posted January 16, 2013 Viens virtuālais lietotājs uz katru atsevišķo api. Eg twittera lietotājam būs tavā esošajā lietotāju tabulā viens lietotājs, no Googles - cits lietotājs. Un avatarus kopēt nevajag - pie autorizācijas pārbaudi datus, tādējādi tev vienmēr būs links ar pēdējiem avatariem. Ja tomēr vēlies - vari lokāli kešot, būs nedaudz ātrāka ielāde, bet rēķinies arī ar to, ka būs jāglabā tie dati. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted January 16, 2013 Report Share Posted January 16, 2013 > Pieņemsim lietotājs ir reģistrējies un savam profilam piesastījis vairākus soc. tīklus. Ja šis lietotājs veic kaut kādas darbības, piemēram, pievieno komentāru, kur uzrādās viņa vārds/uzvārds un foto u.tml., tad kurš vārds/uzvārds būtu jāizvada? Tas, kurš atbilst tam soc. tīklam, ar kuru tika veikta autorizācija un veikta darbība? Bet tādā gadījumā sanāk, ka tie jau ir vairāki lietotāji, jo tie user'a dati soc. tīklos atškiras. Kā būt šajā gadījumā? Atkarībā no biznesa prasībām. Parasti jau ir galvenie dati, kas glabājas iekš `users` tabulas — tie tad arī tiek rādīti. Dati no sociālajiem tīkliem ir sekundāri. Pati doma, kāpēc sociālos tīklus vispār izmantot, ir iespēja ielogoties bez ekstra reģistrācijas, nevis arī informācijas par lietotāju aizstāsānas. Quote Link to comment Share on other sites More sharing options...
F3llony Posted January 16, 2013 Report Share Posted January 16, 2013 Grēvi, taču pirmajā postā teica Tagad ir vajadzība šo sistēmu papildināt ar sociālo tīklu (Facebook, Draugiem, Twitter) autorizāciju Kādas vēl biznesa prasības, kādi galvenie dati, kādi sekundāri dati? Ir runa par modeli, kur lietotājs nereģistrējas, bet autorizējas sistēmā izmantojot API - as if aizstāj auth-reg lapā kā tādu. Nafig tu jauc cilvēkam prātu ar savu demagoģiju, no kuras viņam vienalga nekāda īpaša labuma nebūs... Biznesa prasības. Ibio. Diez tu maz zini, kas tas ir... Quote Link to comment Share on other sites More sharing options...
daGrevis Posted January 16, 2013 Report Share Posted January 16, 2013 Stulbs arī paliec. 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.