oauth перенаправить для разрешения - цикл! - PullRequest
2 голосов
/ 08 июля 2011

У меня проблемы с новым разрешением в FB - похоже, пользователям теперь нужно пройти через клиент oauth, чтобы одобрить приложение. Код следующим образом: -

защищенный void Page_Load (отправитель объекта, EventArgs e) {

    var auth = new CanvasAuthorizer { Permissions = new[] { "user_about_me" } };


    if (auth.Authorize())
    {
        ShowFacebookContent();
    }
    else
    {

        Response.Redirect("https://www.facebook.com/dialog/oauth?client_id=<appli id>&redirect_uri=http://apps.facebook.com/<myapp>/Default.aspx");

        FacebookWebAuthorizer auth2 = new FacebookWebAuthorizer(FacebookWebContext.Current);
        auth2.Permissions = new[] { "name, first_name" };
        if (auth2.Authorize())
        {
            Label1.Text = "Authorized";
        }
        else
        {
            Label1.Text = "Not Authorized";
        }

    }

Проблема в том, что, когда новый пользователь входит в систему, он отскакивает от сайта oauth, который делает свое дело, затем красиво перенаправляет обратно на страницу вызова, а затем зацикливается и вылетает. Может показаться, что для распространения клятвы требуется некоторое время, поэтому код перезапускает перенаправление oauth - и т.д ...?

Единственный способ заставить это работать, это добавить, как указано выше, заставить пользователя войти в систему, он авторизуется, затем зацикливается и вылетает, затем я закомментирую перенаправление, и они будут утверждены (т.е. auth2.name = "Billbo Baggins "или что-то).

Есть ли у кого-нибудь полезные советы или обходные пути - я потратил 3 дня, чтобы просмотреть все (PHP-ориентированные) примеры и т. Д. Безрезультатно.

Добрейший, Джонатан.

1 Ответ

0 голосов
/ 18 марта 2013

Вы используете очень старую версию Facebook C # SDK.Я являюсь автором SDK и даже не могу вспомнить этот код ... Поэтому я рекомендую вам выполнить обновление до версии 6. Возможно, вы также захотите взглянуть на шаблон ASP.NET Facebook, который имеет гораздо более надежныйпомощники аутентификации.http://www.asp.net/vnext/overview/fall-2012-update/facebook-application-template-tutorial

Кроме того, вы можете найти библиотеку, написанную для этого шаблона, здесь: http://nuget.org/packages/Microsoft.AspNet.Mvc.Facebook. Исходный код находится здесь: http://aspnetwebstack.codeplex.com/

Если вы не можетеПри обновлении вы можете загрузить исходный код старой версии Facebook C # SDK с github и посмотреть, сможете ли вы пройтись по коду, чтобы найти проблему.https://github.com/facebook-csharp-sdk/facebook-csharp-sdk/tree/v5

...