ASP.Net и Facebook: вход через ASP.Net - PullRequest
1 голос
/ 07 декабря 2010

Я хочу включить аутентификацию Facebook и FB-Graph на моем веб-сайте, который уже имеет аутентификацию форм. Используя http://multitiered.wordpress.com/2010/08/05/getting-started-with-the-facebook-c-sharp-sdk/, я смог выяснить, как войти в систему на стороне сервера.

Однако проблема с этим подходом состоит в том, что безопасный cookie не будет создан, так как вызов возвращает код аутентификации в строке запроса посредством обратного вызова. Это означает, что пользователь должен будет входить в систему каждый раз.

Я вижу два пути решения этой проблемы:

  1. Сохраните токен доступа в защищенном файле cookie вручную
  2. Вместо описанного выше подхода, используйте FB JS API для входа в систему - при этом автоматически сохраняется безопасный cookie с токеном доступа

Я бы предпочел не использовать второй подход, поскольку я хотел бы, чтобы код входа был на стороне сервера.

Какой подход лучше? Я что-то упустил?

1 Ответ

0 голосов
/ 30 сентября 2011

Я использую метод JavaScript для первой аутентификации пользователя, затем JS SDK записывает зашифрованный cookie-файл (называемый «fbs_ [YourAppID]»), когда подключенный пользователь заходит на вашу страницу;используя один из множества Facebook c # SDK, этот cookie можно декодировать, используя секрет вашего приложения, предоставляя вам идентификатор пользователя, токен oAuth, дату истечения срока действия и т. д.

Затем я подключаюсь к событию AuthenticateRequest моего приложения .NET,проверьте наличие файла cookie, расшифруйте его, если он найден, а затем найдите пользователя, которому был присвоен этот идентификатор Facebook (в вашей таблице пользователей должно быть дополнительное поле для хранения идентификатора их учетной записи Facebook).

Еслисовпадение найдено, я пишу обычный файл cookie для проверки подлинности форм для этого пользователя, затем .NET распознает их для всех будущих запросов.Если пользователь не найден, то это новый пользователь, который только что подключился.Снова используйте SDK, чтобы запросить API-интерфейс графа, используя их токен oAuth, получить такие вещи, как их имя / адрес электронной почты и т. Д., И создать новую учетную запись, а затем выдать токен аутентификации как обычно.Пользователь будет оставаться на вашем сайте для всех запросов, как если бы они были обычными пользователями.

Одна сторона, при использовании адреса электронной почты, проверять наличие дубликатов и проверять наличие файла cookie facebook во всех запросах.Например, существующий зарегистрированный зарегистрированный пользователь мог только что подключиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...