首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Soundcloud身份验证弹出窗口callback.html在连接后从不关闭

Soundcloud身份验证弹出窗口callback.html在连接后从不关闭
EN

Stack Overflow用户
提问于 2015-11-03 05:18:22
回答 1查看 382关注 0票数 3

首先,我使用Soundclouds JS sample code for client side JS apps连接Soundcloud API。他们的代码和我的代码唯一的区别是我放入了我自己的client_id和redirect_uri。(我还复制了他们的callback.html,把它放到我的服务器上,把它的地址放在我的应用程序的soundcloud页面上)。

在我的弹出窗口拦截器确认后,身份验证弹出窗口出现,并要求允许访问我的帐户,我给它许可,然后弹出窗口清除所有以前的内容,并简单地通知:‘这个弹出窗口应该在几秒钟内自动关闭’-但它没有,并且显示其过去授权的其余代码永远不会显示。

这是我正在使用的Soundcloud示例。我在本地主机上使用服务器并部署它并适当地更改redirect_uri时尝试了它,结果完全相同。

代码语言:javascript
复制
SC.initialize({
  client_id: 'YOUR_CLIENT_ID',   // changed it to mine
  redirect_uri: 'http://example.com/callback'  
});

SC.connect().then(function() {
  return SC.get('/me');
}).then(function(me) {
  alert('Hello, ' + me.username);
});

在Chrome和Firefox的开发控制台中,我没有看到任何错误。我还确保我的redirect_uri文件的协议在我的帐户设置和代码之间匹配。

在我的应用程序的Soundcloud页面上的“你的应用程序的网站”字段会有区别吗?我试着设置它,它没有修复它。客户端机密是做什么的?

到目前为止,我找到的最接近答案的是this SO page,他似乎发现你不能使用不以“www”开头的url。我很难相信这就是问题所在,不幸的是,无论是本地主机还是我的域名都不是以www开头的。

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2016-01-05 10:58:39

在您的callback.html中,更改行:

代码语言:javascript
复制
<body onload="window.opener.setTimeout(window.opener.SC.connectCallback, 1)">

至:

代码语言:javascript
复制
<body onload="window.setTimeout(window.opener.SC.connectCallback, 1)">

在soundcloud.com的应用程序设置页面中,确保您的网站设置和回调uri位于相同的域(无论是本地主机还是生产域),并且一切都应该正常工作。

注意:为了调试,注释掉这一行,故意将弹出窗口留在那里,然后可以使用console来询问callback.html页面中的其他代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33487114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档