Play Framework добавляя # _ = _ для перенаправления после авторизации Facebook через OAuth2? - PullRequest
17 голосов
/ 06 сентября 2011

Я делаю простое перенаправление после вызова OAuth2 :: retrieveAccessToken () с Play Framework.У меня есть забавные символы, добавленные к URL, который я никогда не помещал туда, поэтому конечный результат выглядит следующим образом:

http://localhost:9000/#_=_

Где, черт возьми,# _ = _ откуда?Вот мое определение маршрута из файла маршрутов:

GET / Application.index

Вот фрагмент кода контроллера, работающего с аутентификацией Facebook:

public static void facebookConnect() {
    OAuth2 facebook = new OAuth2(
        "https://graph.facebook.com/oauth/authorize",
        "https://graph.facebook.com/oauth/access_token",
        "2#############6",
        "c##############################2"
    );

    if(OAuth2.isCodeResponse()) {
        OAuth2.Response oauthResponse = facebook.retrieveAccessToken(facebookAuthUrl());
        if(oauthResponse.error == null) {
            //... Somewhere here, something is causing #_=_ to be appended to the URL?
            Application.index();
        }
    }
    facebook.retrieveVerificationCode(facebookAuthUrl());
}

РЕДАКТИРОВАТЬ:

Согласно этой странице , Facebook недавно изменил свой API, добавив = , если request_uri пусто, проблема заключается в ... мойrequest_uri был явно установлен?

Ответы [ 2 ]

21 голосов
/ 10 сентября 2011

Это было добавлено после обновления для системы безопасности.

Из блога разработчика Facebook :

Изменение поведения перенаправления сеанса

На этой неделе мы начали добавлять фрагмент #_=_ в redirect_uri, когда это поле оставлено пустым.Убедитесь, что ваше приложение может справиться с таким поведением.

1 голос
/ 07 сентября 2011

Возможно, эти персонажи взяты из колбэка на фейсбуке.Я получал обратный вызов FB, как

localhost:9000?someparams#code=verylongcodefromfacebook

. Я мог избавиться от #, просто очистив параметры перед запросом токена доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...