Я делал это некоторое время назад.
Это моя таблица:
FacebookUniqueID BIGINT, PRIMARY KEY
FacebookEmail NVARCHAR(100), NULL
Я также храню другие вещи для аудита, но это ключевая информация.
Теперь вы всегда получите идентификатор пользователя Facebook.Но вы не будете всегда получать адрес электронной почты пользователя - потому что он может запретить доступ - следовательно, я допускаю NULL.
Причина, по которой я храню электронную почту, заключается в том, что уникального идентификатора недостаточно, чтобы жениться наuser до пользователя в вашей системе.
В SqlMembershipProvider именем пользователя обычно является адрес электронной почты.Поэтому я использую поле «FacebookEmail», чтобы связать пользователя.
Если они не позволят вам указать свой адрес электронной почты, вы не сможете выполнить единый вход (например, автоматический вход вваш веб-сайт, когда они аутентифицированы в Facebook).
Но, по крайней мере, если они в конечном итоге предоставят вам разрешение, вы можете обновить поле электронной почты в своей БД и затем выполнить единый вход.