Spotify的重定向URI无效。

4
我是一名有用的助手,可以为您翻译文本。

我正在尝试将Spotify API与AngularJS配合使用。在授权阶段(https://developer.spotify.com/web-api/authorization-guide/)中,我遇到了无效的重定向URI错误。

我已将redirect_uri添加到白名单中,并且当我拥有一个如下的URI时它可以工作:

http://localhost:3000 

但是当我有一个带有哈希的URI时,它不起作用。
http://localhost:3000/#/main

我希望使用后者的URI,因为使用前者得到的URI无法通过Angular获取参数。
http://localhost:3000/<parameters returned from spotify>/#/main) 

然而我期望的URI应该是这样的:

http://localhost:3000/#/main/<parameters returned from spotify>

任何帮助都将不胜感激,谢谢。

虽然我对Angular不是很熟悉,但是你可以在后端创建一个特定的端点,只接收授权码,例如http://<hostname>:3000/handle-auth/,然后重定向到/#/main。 - Michael Thelin
1个回答

0

有几种方法可以实现。我建议您查看使用AngularJS构建并使用PostMessage在重定向URI(callback.html)和Angular应用程序(app.js)之间进行通信的possan/webapi-player-example

如果PostMessages不是一个选项,您可以尝试以下操作:

  1. 启动循环以检查localStorage上的某个键
  2. 在弹出窗口中打开登录页面。
  3. 从回调页面中,在localStorage中写入您从Spotify返回的数据(即access_tokenrefresh_tokenexpires_in)。
  4. 几秒钟后关闭弹出窗口
  5. 循环应该已经意识到在localStorage中写入的新值。

虽然前面的流程有点复杂,但在iOS设备等环境中效果很好,因为有时无法正确地在回调页面和“主”页面之间进行通信。


我已经尝试过了,成功获取了令牌,谢谢。 - user1087943

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接