Удостоверяване във Facebook: от страната на сървъра срещу страната на клиента. Python/Django

Имам уебсайт, който по същество изисква потребителят да е влязъл, за да види каквото и да било. Ако не са влезли, те се пренасочват към началната страница и формуляр за вход.

В момента използвам стандартното удостоверяване на Django и тествам за удостоверяване от страна на сървъра, преди да върна страницата.

Сега искам да добавя Facebook вход и удостоверяване. Това означава ли, че трябва да направя обаждане от страна на сървъра до Facebook и да проверя удостоверяването всеки път, когато потребител навигира до която и да е страница? Изглежда, че това ще добави доста голям брой обаждания и потенциални забавяния на страницата.

Или това наистина не е проблем (обаждането във Facebook е бързо) или има някакъв друг умен начин, който пропускам? По някакъв начин да преместя обаждането от страната на клиента, където смятам, че Facebook използва кеширане?

Разгледах някои от пакетите на Django/Facebook, но никой не обяснява цялостната стратегия, което искам да разбера. Уроците, които разгледах, описват как да влезете, но не се притеснявайте какво се случва, след като потребителят излезе от Facebook.


person user984003    schedule 10.10.2013    source източник


Отговори (1)


По принцип потребителят влиза веднъж с помощта на facebook (това ще направи заявка към facebook).

след като влезе в системата, той ще се държи точно като нормален потребител на django (повечето приложения създават потребител на Django за всеки потребител на facebook)

Едва когато токенът за достъп е изтекъл („паролата“ за използване на данните от facebook), тогава ще трябва да направите връзка с facebook отново.

Препоръчвам ви да използвате Python Social Auth, който по същество прави всичко вместо вас.

person YardenST    schedule 10.10.2013
comment
Тогава какво се случва, ако потребител излезе от Facebook - ще очаква ли да продължи да влиза в моето уеб приложение? Или биха очаквали, че излизането от Facebook ги отписва от всяко приложение, което използва тяхното влизане във Facebook, в който случай трябва да продължа да проверявам дали все още са влезли във Facebook? - person user984003; 10.10.2013
comment
това е добър въпрос. зависи изцяло от вас: давате ли възможност да се регистрирате във вашия сайт чрез facebook? или потребителят на вашия сайт е потребителят на facebook? по-разпространена е първата опция, така че дори ако потребителят не е влязъл във facebook, това не означава, че не може да е влязъл във вашия сайт. но всеки път, когато трябва да влезе отново във вашия сайт, той ще трябва да използва своя акаунт във facebook, тъй като потребителите на facebook нямат пароли във вашия сайт. това е основният проблем за него: частта за удостоверяване. - person YardenST; 10.10.2013
comment
ААА разбирам. Със сигурност е по-лесно, ако Facebook и приложението ми не трябва да са толкова свързани. Случайно знаете дали трябва да са влезли във facebook, за да имам достъп до информацията им във facebook - като имейла им или каквото и да е друго, за което може да са ми дали разрешение? - person user984003; 10.10.2013
comment
Не, не е нужно да бъдат. Когато процесът на удостоверяване приключи, получавате някои основни подробности като имейл, списък с интереси, харесвания...в отговор от Facebook. И най-важното е, че ви дават токена за достъп: който ви дава достъп до информацията за потребителя, когато пожелаете (но само за това, което потребителят се е съгласил да даде, разбира се). този токен за достъп ще изтече след 60 дни според мен и след това трябва отново да получите разрешение за друг. - person YardenST; 10.10.2013
comment
Благодаря, това е голяма помощ. - person user984003; 10.10.2013