【问题标题】:Web service API - Request authorization from the user - First timer [closed]Web 服务 API - 请求用户授权 - 第一个计时器 [关闭]
【发布时间】:2013-03-19 15:19:38
【问题描述】:

last.fm API authentication

我需要连接到一个 URL,让用户进行身份验证,然后继续。我怎么做?我有打开网址的部分,但不知道如何等待。

            // 3. Request authorization from the user
            String authURL = "http://www.last.fm/api/auth/?api_key=" + key + "&token=" + token;
            java.awt.Desktop browser = java.awt.Desktop.getDesktop();
            java.net.URI uri = new java.net.URI(authURL);
            browser.browse(uri);

这是我第一次使用 Web API。我尝试在 Google 和 SO 上查找,但没有完全找到我要查找的内容。

【问题讨论】:

    标签: java api url authentication last.fm


    【解决方案1】:

    很抱歉您选择此作为 API 的介绍。文档中的 5 秒显示您的问题是他们的代码中的设计缺陷,来自文档:

    如果用户未登录 Last.fm,他们将被重定向到登录页面,然后被要求授予您的应用程序使用其帐户的权限。在此页面上,他们将看到您的应用程序的名称,以及第 1 节中提供的应用程序描述和徽标。一旦用户授予您的应用程序使用其帐户的权限,基于浏览器的过程就结束了,并询问用户关闭他们的浏览器并返回到您的应用程序。

    没错。用户完成身份验证后,他们不会 ping 您。他们只是指示用户关闭浏览器。由于显而易见的原因,这很蹩脚:我们如何知道用户是否完成了它?我们没有。

    您将构建您的应用程序,以便在用户返回后代码继续执行,可能会给用户一个按钮来显示“我完成了”。稍后,您将不得不处理用户从未在调用 API 的其他代码中进行身份验证的可能性。

    是的,它坏了。例如,在用户完成基于浏览器的身份验证步骤后,oAuth 至少会使用令牌给您回电。在桌面应用程序中使用 oAuth 时,您只需启动本地网络服务器并在那里接收您的回调(显然需要正确配置您的 LAN)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 2014-10-25
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      相关资源
      最近更新 更多