社交问题。针对Deezer登录

时间:2020-05-06 12:24:44

标签: codenameone

我面对使用Deezer的com.codename1.io.Oauth2和com.codename1.social.Login的奇怪行为。尽管Deezer使用参数“ app_id”代替“ client_id”,但它仍接受带有必需参数的请求。

-> deezer预期的URL请求: 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

这将使浏览器正常运行,并重定向到login.php + args后显示Deezer登录屏幕。到目前为止还好。但是,一旦我输入了userid / password,它将再次重定向到login.php,而没有参数。这很奇怪,因为当我从Firefox或Safari测试URL时似乎可以正常工作。有什么办法可以帮助我吗?为什么行为不同?

此外,我想让Oauth2实现Login所使用的接口是一个好主意,不是吗?或至少使Oauth2.buildURL()受保护。

非常感谢。

E

0 个答案:

没有答案