我正在尝试使用授权代码流,而不是我当前使用的隐式授权。下面是这两个流的文档。我正在使用来自我的角度2应用程序的斑点API。前三个步骤进展顺利,我从回调调用中获取代码。但是当我向 https://accounts.spotify.com/api/token 发出帖子呼叫时,我得到CORS异常,因为呼叫返回浏览器禁止的网站。返回页面与单击此链接 https://accounts.spotify.com/api/token 相同。我尝试使用curl调用此API,这就是我注意到的。调用此命令时:
curl -H "Authorization: Basic ZjM...zE=" -d grant_type=authorization_code -d code=MQCbtKe...44KN -d redirect_uri=https%3A%2F%2Fwww.foo.com%2Fauth https://accounts.spotify.com/api/token
它返回错误 json 消息并抱怨无效的客户端。
当我删除数据时,它会返回该错误html页面。
curl -H "Authorization: Basic ZjM...zE=" https://accounts.spotify.com/api/token
所以我假设在我的代码中问题是相同的或类似的。那么可以将这些参数设置为POST调用主体吗?Spotifyendpoint似乎根本没有收到我的参数,这就是为什么它不返回错误消息。这是spotify提供的示例,这是Angular超文本传输协议组件的留档。
这是我的打字脚本调用:
var data = {
redirect_uri: this.config.redirectUri,
grant_type: 'authorization_code',
code : code
};
let headers = this.getTokenHeaders();
let address = "https://accounts.spotify.com/api/token";
return this.http.post(address,data, new RequestOptions({headers: headers}))
.toPromise()
.then(res =>
{
let body = res.json();
localStorage.setItem('spotify-access-token', body.access_token);
localStorage.setItem('spotify-refresh-token', body.refresh_token);
var expiresIn = body.expires_in;
return true;
})
.catch(err=>
{
return false;
});
getTokenHeaders()
{
return new Headers(this.accountAuth());
}
private accountAuth(): Object {
var auth = {
'Authorization': 'Basic ' + (new Buffer(this.config.clientId + ':' + this.config.clientSecret).toString('base64')),
'Content-Type': 'application/x-www-form-urlencoded'
//'Content-Type':'application/json'
};
return auth;
}
我尝试将Content-Type设置为application/json和application/x-www-form-urlencoded。
我找到了这个答案https://stackoverflow.com/a/28406268/8081009并从服务器端尝试了它,当我使用消息体传递参数时,也得到了相同的错误页面。然后我将参数更改为url,如下所示:
var url = "/api/token?redirect_uri=http://localhost:8080/callback.html&grant_type=authorization_code&code="+code;
现在我得到了正确的信息。希望这能帮助到一些人。
所以不要从客户端使用api/token,设置参数为url。
但是,我收到以下错误: “my_error”:“SQL错误:derived_table zero_to_3创建失败:CREATE TABLE as select:com.ibm.DB2.jcc.am.sqlsyntaxerrorexception:DB2 SQL错误:sqlcode=-104,sqlstate=42601,sqlerrmc=as;rO_to_3\”(\n有两个;join,drive
我正在使用adal-angular4库在angular 4单页应用程序中进行隐式流实现。这个应用程序调用一个web api来显示结果。这两个应用程序都托管在azure中(在一个特定的租户中),并进行了适当的注册,配置工作正常。
问题内容: 创建新类时遇到了此类错误。下面是我的代码: 谁能帮助我弄清楚实际发生了什么,并提出解决建议?非常感谢您的帮助 真诚的 问题答案: 该声明 应该在代码块中,例如方法,构造函数或实例初始化程序中,而不是在类块中
问题内容: 我需要验证一个Google id_token,其中一个步骤涉及检查令牌签名。 首先,我从以下网址获取证书:https : //www.googleapis.com/oauth2/v2/certs,并从证书中提取模数(n)和指数(e)并生成公钥,然后分解令牌(标题,有效负载和摘要),然后将解码后的内容与Google pKey +摘要一起发送到rsa函数。 我陷入了这个验证错误: 这是代码
问题内容: 我尝试了以下简单的JavaScript代码: 例如,在Chrome控制台中,这将返回 SyntaxError:意外令牌: 我在JSONLint上尝试了JSON ,它是有效的。 您看到错误了吗? 问题答案: FWIW,改为使用。比。
问题内容: 尝试解析此JSON字符串时出现错误 扩展的字符串对象: 问题答案: 验证您的json字符串。如果可以,请尝试以下操作: