Я собираюсь использовать SDK facebook, и сначала мне интересно, какую версию мне следует использовать?
Похоже, что произошли некоторые серьезные изменения с 4.2 до 5 (в настоящее время все еще в стадии бета). Стоит ли мне использовать бета-версию? У кого-нибудь есть идеи, когда он выйдет из бета-версии?
Мой второй вопрос: как я могу использовать его для аутентификации.
Прямо сейчас я использую DotNetOpenAuth для выполнения всей моей аутентификации openId для моего сайта. Я использую там своего рода плагин для аутентификации facebook (oAuth), однако я планирую использовать больше функций facebook на своем сайте, поэтому я думаю, что бессмысленно использовать этот плагин, а затем библиотеку sdk, когда библиотека, похоже, может делать все это.
Всегда, как мне выполнить аутентификацию с помощью библиотеки sdk. Я хочу, чтобы на моей странице входа была кнопка, которую они нажимают, она уходит в facebook, они аутентифицируются, и я получаю ответный запрос, в котором говорится, что они аутентифицированы, а затем я даю им cookie и впускаю их.
Все учебные пособия, которые я видел, показывают, что вы просто используете facebook в качестве единственного метода аутентификации, но, конечно, для меня у меня есть openId, facebook и twitter.
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 работает:
- Аутентификация в Facebook прошла успешно?
- Есть ли у нас пользователь с идентификатором Facebook в качестве имени пользователя в системе?
- Если не создать пользователя, укажите имя, адрес электронной почты и т. Д. Из данных Facebook.
- Установите файл 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 локально.
Я использую 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 простых шагов, описанных в этой ссылке
Легко, да?
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.