Автоматический вход с Facebook C # SDK? - PullRequest
1 голос
/ 17 января 2012

Я работал с Facebook C # SDK, хотя есть одна вещь, которую я не смог достичь:

Сценарии

Сценарий 1: Пользователь НЕ авторизован на Facebook.com. Пользователь посещает mysite.com. Mysite.com показывает кнопку Facebook Connect. Пользователь нажимает кнопку для входа в систему и перенаправляется на mysite.com/mainsite.

Сценарий 2: Пользователь вошел в facebook.com. Затем пользователь посещает mysite.com. Пользователь перенаправлен на mysite.com/mainsite.

Сценарий 3: Пользователь вошел на mysite.com с помощью Facebook. Пользователь закрывает сессию внутри facebook.com. Mysite.com выходит из системы.

Проблема:

Сценарий 1 и 3 работы. Но по какой-то причине facebook c # sdk может выполнить сценарий 2 только после обновления mysite.com один раз.

Я скачал образцы. И да. Так бывает и в примерах.

Я открываю сессию в facebook.com. Тогда посетите mysite.com. Ничего не произошло. Нет входа. Затем я обновляю mysite.com и bam. Я вошел в систему.

Разве он не должен определить, есть ли сеанс при первой загрузке страницы? Почему не так? Является ли это возможным? Как?

Я не видел ни одного рабочего примера этого автоматического входа в систему с использованием facebook c # sdk.

Примечание. Пользователь уже дал необходимые разрешения приложению. Примечание. В настоящее время я работаю с образцами SDK.

1 Ответ

1 голос
/ 24 февраля 2012

Вам нужно будет сделать это с помощью Javascript.Вы можете определить состояние пользователя с помощью следующего кода при загрузке вашей страницы (обратите внимание, что это Javascript на клиенте):

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    // the user is logged in and has authenticated your
    // app, and response.authResponse supplies
    // the user's ID, a valid access token, a signed
    // request, and the time the access token 
    // and signed request each expire
    var uid = response.authResponse.userID;
    var accessToken = response.authResponse.accessToken;
  } else if (response.status === 'not_authorized') {
    // the user is logged in to Facebook, 
    // but has not authenticated your app
  } else {
    // the user isn't logged in to Facebook.
  }
 });

Подробнее об этом можно прочитать здесь: https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

...