Как выйти из Facebook или очистить файлы cookie на WebAuthenticationBroker?

Я использую эту функцию для выхода из Facebook;

WebAuthenticationResult webAuthenticationResult = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, new Uri(logOutUrl));

Я еще ни разу не выходил из системы. Протестированные URL-адреса выхода из системы;

https://www.facebook.com/logout.php?next=ms-app://s-1-15-2-3770417266-2318136516-104659947-271617402-3372047-3177875635-1623475580/&access_token=CAAWBicfyTKIBAKP1Y3SqwsmifvM8IzC8mEVudOtlkQ2vTZB2ZCVGIV4rlJGYAtHSZCE3llAE4APTwPkO01DrsGO15TvvhvxfE0ZCVZA9KaqzHOIr4gRJaBvStN5ZAFBOkgUnAh8MVDYySpcw6tg7wAi3tdSctyFScHyvC9IexktnZCCh8VIveGKA1iP3LpG2b9pZBUOQsYCxLKZBVmqSjLHN4AissXi6vqL5TTz06mUFRmKZBvxrWouEkoTaju0xDYk4gZD»отн=

https://www.facebook.com/logout.php?next=https://www.facebook.com/connect/login_success.html&access_token=CAAWBicfyTKIBAImjTd00l36CxXBKTg47IZCOApW5f8jaOZCZBc3K8DZCdUQYABsRqCRq2Q9NurBHdBBqEuEarCKDT6HGHmqLQNQ1xLsZBGSuuZAEMiSfP95jeta4IkS4GHvnue8rJxiflIeXpBQ6VWC0BtaEYLBBqaelpTwEo9uWOgcISMGXDWt51r8n0JWqnH4JaJJD0cbmm1vTt06nH4m1S9pEeFBCcZD

В чем моя ошибка? Мне нужно установить какие-либо настройки на сайте developer.facebook.com?


person E.D    schedule 14.02.2015    source источник
comment
Пожалуйста, добавьте подробности о неправильном поведении, которое вы видите. Объясните, почему вы считаете, что этот код и эти ссылки не работают. Какие ошибки вы получаете (если есть).   -  person verdammelt    schedule 14.02.2015
comment
Когда я вызываю эти URL-адреса, Facebook постоянно перенаправляется на facebook.com/home.php. но я ожидаю перенаправить страницу входа   -  person E.D    schedule 14.02.2015


Ответы (1)


Несколько вещей, основанных на ограниченной информации, которую вы предоставили: при попытке завершить чистый выход из системы с помощью брокера веб-аутентификации ваш второй проверенный URL-адрес ближе к отметке, однако у него есть некоторые проблемы:

Начало правильное: "https://www.facebook.com/logout.php?"

URL-адрес перенаправления выхода из системы, переданный в строке запроса в качестве параметра [next], который содержит: "login_success.html", должен быть закодирован в URL-адресе. (в противном случае вы будете перенаправлены на домашнюю страницу, что вы и нашли)

токен доступа, я предполагаю, что это правильно.

когда вы вызываете его, вы окажетесь на пустой странице со словами «успех» на ней и счастливым предупреждающим сообщением от Facebook о том, что вы должны быть осторожны при передаче токена доступа в строке запроса.

Но это не проблема, потому что эти данные недоступны конечному пользователю. При использовании брокера веб-аутентификации.

Следующая проблема, с которой вы столкнетесь после исправления кодировки URL, заключается в том, что пользователь остается на этой уродливой странице с предупреждением о безопасности Facebook, где пользователь должен нажать кнопку «Назад» на своем устройстве, чтобы вернуться в приложение. , что не идеально, и страница с предупреждением Facebook не предлагает конечному пользователю сделать это.

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

так что лучше показать вам код :)

    _logoutUrl = FBClient.GetLogoutUrl(new
        {
            next = "https://www.facebook.com/connect/login_success.html",
            access_token = //your access token (string)
        });

        var url = new Uri("https://www.facebook.com/connect");

            WebAuthenticationBroker.AuthenticateAndContinue(_logoutUrl, url);

вы увидите, что я использовал WebAuthenticationBroker.AuthenticateAndContinue, а не AuthenticateAsync, потому что с аутентификацией и продолжением это позволяет нам предоставить метод со вторым uri/url, который используется под капотом, таким образом, что если Результатом процесса аутентификации является URL-адрес, который (начинается с / содержит), второй URL-адрес, который мы предоставили, а затем это индикатор для автоматического возврата ответа в наше приложение.

поэтому для приведенного выше кода wab (сокращение от брокера веб-аутентификации) запустит свой внутренний контроль веб-просмотра и перейдет к URL-адресу выхода из Facebook, как вы уже знаете, и когда выход завершится, он перенаправит веб-просмотр на URL-адрес : содержащий «login_success.html», и во второй раз (wab) обнаружит, что наш URL-адрес, указанный в качестве второго параметра https://www.facebook.com/connect является частью этого и возвращается обратно в приложение. И токены аутентификации/куки Facebook будут удалены.

person simon says    schedule 20.03.2016