Проблема с соц. Логином против Deezer - PullRequest
1 голос
/ 06 мая 2020

Я столкнулся со странным поведением при использовании com.codename1.io.Oauth2 и com.codename1.social.Login против Deezer. Хотя Deezer использует аргумент app_id вместо client_id, он по-прежнему принимает запрос с необходимыми аргументами.

-> URL-запрос, ожидаемый deezer: https://connect.deezer.com/oauth/auth.php?app_id=APP_ID&redirect_uri=REDIRECT_URI&perms=basic_access

Код для максимального соответствия:

@Override
protected Oauth2 createOauth2() {
    Hashtable<String, String> params = new Hashtable<String, String>();
    params.put("app_id", APPLICATION_ID);
    params.put("perms", "basic_access");

    return new Oauth2(OAUTH_URL, APPLICATION_ID, REDIRECT_URL, null, null, null, params);
}

-> URL-адрес, наконец, отправлен в deezer: https://connect.deezer.com/oauth/auth.php?client_id=APP_ID&redirect_uri=REDIRECT_URL&response_type=token&app_id=APP_ID&perms=basic_access

Откроется браузер. нормально и отображает экран входа в Deezer после перенаправления на login.php + args. Пока все нормально. Однако, как только я ввожу идентификатор пользователя / пароль, он снова выполняет перенаправление на логин. php без аргументов. Это странно, поскольку кажется, что он работает нормально, когда я проверяю URL-адрес из Firefox или Safari. Есть идеи помочь мне? Почему поведение отличается?

Кроме того, я думаю, было бы неплохо заставить Oauth2 реализовать интерфейс, используемый Login, а не? Или, по крайней мере, сделайте Oauth2.buildURL () защищенным.

Большое спасибо.

E

...