Опитвам се да вляза потребител през facebook. Използвах django-social-auth за същото. Интегрирах го успешно с моя тестов проект. Въпреки това не знам как да съпоставя потребител с django auth потребител. За да бъдем по-точни, кажете например, че удостоверявам потребител чрез facebook. След като сесията приключи, потребителят излиза. Когато потребителят се върне за втори път, отново през facebook, как да разбера, че това е същият потребител? Не мога да използвам потребителското име във facebook, защото потребителското име може да се промени! Не мога да използвам имейл ID на потребителя по очевидни причини. Какъв идентификатор от данните, изпратени от facebook, трябва да считам за уникален за конкретен потребител? Ключовете от отговора, изпратен от facebook, са следните
['username', 'bio', 'first_name', 'last_name', 'verified', 'name', 'locale', 'hometown', 'work', 'expires', 'sports', 'languages', 'quotes', 'link', 'location', 'gender', 'access_token', 'timezone', 'education', 'updated_time', 'id']
Въпреки това отговорът, който е най-очевиден за мен, е да се използва „id“ за идентифициране на потребителя, какви са шансовете facebook да премести всичките си данни на нови сървъри и полето „id“, свързано с потребителите, да се промени? Ако това се случи, това може да накара потребител с променен идентификатор да получи достъп до данните на друг потребител, ако получи същия идентификатор като предишния идентификатор на последния! Вероятно мога да използвам комбинация от „id“ и „username“, тъй като facebook ви позволява да промените потребителското име само веднъж. Но ако премахнат това ограничение, това ще наруши логиката ми. Аз съм напълно нов в OAuth2, така че моля да ме извините за невежеството ми, ако това звучи глупаво. Опитах се да проуча малко, но се изгубих в огромните уроци! Как обикновено хората се справят с това?
РЕДАКТИРАНЕ: Отговорите на въпроса, свързан като дубликат, не отговарят на въпроса ми как да се справя с промяната на ID от страна на Facebook. Въпреки че е рядък случай, възможността не може да бъде изключена, особено защото промяната ще се случи от страна на Facebook и аз нямам контрол върху нея. Нещо повече, дори не бих имал никакъв намек, когато се промени. И ако подобно нещо се случи, сигурността на потребителите на моето приложение ще бъде застрашена! Тъй като OAuth2 е вид стандарт, има ли някаква насока за уникалния идентификатор? Някаква насока пречи ли на доставчика да промени потребителския идентификатор?