Я собираюсь использовать SDK facebook, и сначала мне интересно, какую версию мне следует использовать?

Похоже, что произошли некоторые серьезные изменения с 4.2 до 5 (в настоящее время все еще в стадии бета). Стоит ли мне использовать бета-версию? У кого-нибудь есть идеи, когда он выйдет из бета-версии?

Мой второй вопрос: как я могу использовать его для аутентификации.

Прямо сейчас я использую DotNetOpenAuth для выполнения всей моей аутентификации openId для моего сайта. Я использую там своего рода плагин для аутентификации facebook (oAuth), однако я планирую использовать больше функций facebook на своем сайте, поэтому я думаю, что бессмысленно использовать этот плагин, а затем библиотеку sdk, когда библиотека, похоже, может делать все это.

Всегда, как мне выполнить аутентификацию с помощью библиотеки sdk. Я хочу, чтобы на моей странице входа была кнопка, которую они нажимают, она уходит в facebook, они аутентифицируются, и я получаю ответный запрос, в котором говорится, что они аутентифицированы, а затем я даю им cookie и впускаю их.

Все учебные пособия, которые я видел, показывают, что вы просто используете facebook в качестве единственного метода аутентификации, но, конечно, для меня у меня есть openId, facebook и twitter.

http://facebooksdk.codeplex.com/wikipage?title=Getting%20Started%20with%20an%20ASP.NET%20MVC%203%20Website&referringTitle=Getting%20Started

0
chobo2 20 Апр 2011 в 02:14
Слишком широко. Вероятно, было бы лучше, не спрашивая, использовать ли бета-версию и эту для выпуска 5.
 – 
John Farrell
20 Апр 2011 в 07:26

2 ответа

Лучший ответ

Что касается 4.2 против 5.0 BETA, я думаю, вам нужно решить, хотите ли вы использовать BETA-версию или стабильную версию. Я уверен, что у них есть журнал изменений в их БЕТА-выпуске, в котором вы можете увидеть изменения по сравнению со старой версией.

По поводу аутентификации с помощью Facebook. У меня есть проект, в котором я поддерживаю стандартную аутентификацию с помощью форм и создание учетных записей, а также вход в Facebook. В моем AccountController у меня есть одно действие для входа в формы и одно для входа в Facebook.

Чтобы настроить сборку Facebook, вы можете следовать опубликованному вами руководству, затем вы можете разместить кнопку Facebook на своей странице и аналогичный код, чтобы начать процесс аутентификации:

<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
    $(function () {
        FB.init({ appId: '<%= FacebookSettings.Current.AppId %>', status: true, cookie: true, xfbml: true });

        $('#fbLoginButton').click(function () {
            FB.login(function (response) {
                if (response.session) {
                    // Success - execute our facebook login action.
                    window.location = "<%= Url.Action("FacebookLogin", "Account") %>";
                } else {
                    // user cancelled login or failed
                }
            }, { perms: 'email' });

            return false;
        });
    });

Facebook aciton работает:

  1. Аутентификация в Facebook прошла успешно?
  2. Есть ли у нас пользователь с идентификатором Facebook в качестве имени пользователя в системе?
  3. Если не создать пользователя, укажите имя, адрес электронной почты и т. Д. Из данных Facebook.
  4. Установите файл cookie проверки подлинности с помощью форм

Псевдокод:

FacebookApp facebook = new FacebookApp ();
if (facebook.IsAuthenticated) {
        string userName = facebook.UserId.ToString();

        if (UsersRepository.ByUserName(userName ) == null) {
            // Create a User using the Facebook name, email, etc data
        }            
        FormsAuthentication.SetAuthCookie (userName , true);
}

Идея состоит в том, что я делегирую аутентификацию этим сторонним службам, а затем создаю пользователя в своей системе с информацией, которую я могу получить от них. Также в моем проекте, поскольку я хочу, чтобы пользователь установил / очень некоторые настройки после создания учетной записи, я перенаправляю их на страницу, где они могут это сделать.

P.S: Совет по локальному запуску веб-проекта в Visual Studio. Вы можете создать частное приложение Facebook с "URL-адресом сайта", например, "http: // localhost: 4911 /" и используйте этот appId. Это позволит вам играть с Facebook локально.

0
Ivan Zlatev 20 Апр 2011 в 03:08

Я использую Facebook SDK, и я вам советую использовать бета-версию.

Причина в том, что Facebook меняет и обесценивает большую часть старого интерфейса REST и делает Graph API единственным способом доступа к данным. Итак, чтобы быть уверенным в завтрашнем дне, нужно идти в ногу со временем и лучше.

Сейчас это бета, так что не все на 100%. Если вам нужна стабильность и вы не против вносить изменения, используйте стабильную версию, а затем обновите ее позже.

Что касается аутентификации, процесс аутентификации довольно прост.

Вам нужен ваш authURL:

string authURL = @"https://graph.facebook.com/oauth/authorize?client_id=" + Settings.appId + "&redirect_uri=" + redirectUrl + permissions

Где appId - это ваш идентификатор приложения Facebook (вы получаете его, когда регистрируете свое приложение в Facebook), redirectUrl - это URL-адрес, по которому Facebook отправляет вам токен вызова, а ваш permissions - это список вещей, к которым вы хотите получить доступ с помощью своего токена аутентификации Facebook.

Вы создаете всплывающее окно или что-то еще, что просматривает этот URL-адрес. Пользователь войдет в facebook (если он еще этого не сделал), а затем ему будет представлен экран авторизации приложения (если он еще не авторизовал приложение). Как только они авторизуются (или сразу же, если они уже авторизованы), страница будет перенаправлена ​​на redirectUrl, который вы указали. В URL будет переменная GET с именем code, которая будет содержать строку запроса. Вы берете этот код вызова и добавляете его в качестве переменной запроса к другому URL-адресу в форме:

https://graph.facebook.com/oauth/access_token?client_id=YOURID&redirect_uri=http://www.facebook.com/connect/login_success.html&client_secret=YOURSECRET&code=THATCODE

Этот URL вернет ключ аутентификации ...

Уф! Вот и весь процесс .... Если сделать это вручную :) Теперь, когда вы знаете немного больше о том, что происходит, вы можете оценить то, что SDK делает для вас.

Для аутентификации с помощью SDK Просто выполните 19 простых шагов, описанных в этой ссылке

Легко, да?

2
joe_coolish 20 Апр 2011 в 02:52