Jump to content
php.lv forumi

Autorizācija ar sociālo tīklu starpniecību


ArnisR

Recommended Posts

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!

Link to comment
Share on other sites

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. 

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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. 

Link to comment
Share on other sites

> 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.

Link to comment
Share on other sites

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... 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...