Facebook C # SDK Логин никогда не заканчивается - PullRequest
0 голосов
/ 26 декабря 2010

Я пишу приложение MVC 3 и использую Facebook C # SDK . Пожалуйста, проверьте, что не так с этим логином:

[Authorize(Roles = "Admin")]
[FacebookAuthorize(
        LoginUrl = "https://graph.facebook.com/oauth/authorize?client_id=186437571372857&redirect_uri=http://portugalparty.com/Admin/AIndex/&scope=publish_stream,create_event,email",
        Perms = "publish_stream,create_event,email")]

Проблема

Сначала пользователь вводит логин сайта, а затем запрашивается логин Facebook и, при необходимости, разрешения.

Затем, после того, как логин и права доступа Facebook установлены, я смотрю бесконечную игру в теннис между моим сайтом и Facebook, и она никогда не останавливается!

Что не так и что я могу с этим поделать?

Вот что есть в моем файле web.config, относящемся к этому SDK:

Я не пишу приложение Canvas. Я просто хочу использовать Facebook в своем приложении MVC на своем домене.

<system.web>
<httpHandlers>
  <add verb="*" path="facebookredirect.axd"
                type="Facebook.Web.FacebookAppRedirectHttpHandler, Facebook.Web" />
</httpHandlers>

Немного информации, я помню:

  • Я видел, как пользователь вводил вышеупомянутое действие один раз, а затем я занялся другими вещами. Многое могло случиться между этим моментом и сейчас.

  • Во-первых, я изменил URL сайта в настройках приложения facebook от "http://portugalparty.com/Admin/Index/" до "http://portugalparty.com/Admin/AIndex/". Facebook сказал, что изменения могут отразиться на всех серверах в течение нескольких минут, но прошло уже много часов! Может быть, это не проблема.

Вы знаете, в чем проблема? Я могу поискать дополнительную информацию, если вы скажете мне, что искать.

Спасибо

РЕДАКТИРОВАТЬ: Cookie данные

Я сделал журнал на другой странице моего сайта и перенаправил URL, действие которого имеет атрибут FacebookAuthorize, но проблема все еще сохраняется.

Я запросил файл cookie Facebook на своем сайте (portugalparty.com) и понял, что эти данные:

this.Request.Cookies[1]
{System.Web.HttpCookie}
Domain: null
Expires: {01-01-0001 00:00:00}
HasKeys: true
HttpOnly: false
Name: "fbs_186437571372857"
Path: "/"
Secure: false
Value: "\"access_token=234%7C0e147965318dff91499e702d-1270460469%7CKzr7Gp9oY1FOkT...........fsd...fUf14Eb3223457fG6fWMI&base_domain=portugalparty.com&expires=0&secret=313c9.a.sd7861&session_key=0e147965318dff91499e702d-1270460469&sig=702511b1gdfgdfgdfg23tuy587684653252354356ed25c03c989&uid=1270456469\""
Values: {%22access_token=186437571372857%257C0e1gte235318dff91499e702d-1270460469%257C324zr7Gp9oY1FOkTnU14Eb7H6fWMI&base_domain=portugalparty.com&expires=0&secret=fb196116d9dfds32jty6253456645c97861&session_key=0e1479653fsd3245221491499e702d-1270460469&sig=702511b1a35423543534f45657d25c03c989&uid=127675444429%22}

Я не знаю много о файлах cookie, но почему свойство Доменное имя имеет значение null? В Firefox я вижу cookie в папке моего домена в окне Cookies.

И почему свойство Expires установлено на начало времени? Я попросил разрешения на доступ в автономном режиме, но думаю, что это не имеет никакого отношения к cookie, верно?

Детали файла cookie в порядке?

Имеет ли это какое-либо отношение к IIS 7?

Я изменил свой файл hosts так, что я запускаю проект MVC локально, как если бы я был в сети. Чтобы избежать записи порта вручную, я запускаю проект через IIS (я выбираю опцию «Использовать локальный веб-сервер IIS». Может ли это быть из-за этого?

Спасибо!

1 Ответ

2 голосов
/ 27 декабря 2010

Я думаю, что вы, вероятно, пропускаете часть аутентификации Javascript.При разработке приложения для подключения фильтр FacebookAuthorize только проверяет, есть ли у пользователя разрешения, а затем отправляет их на страницу вашего сайта, которая будет использовать Javascript SDK, чтобы запросить у пользователя разрешения.URL, который вы указали как LoginUrl, не будет работать.Этот URL должен быть что-то на вашем сайте, как / логин.Затем на странице входа в систему вы используете Facebook Javascript SDK для фактической обработки аутентификации.Более подробную информацию смотрите в документации на Facebook: http://developers.facebook.com/docs/guides/web/#registration

...