您好,我是计算机科学专业的学生,并在oauth.io上做了一些实验。但是在成功获取代码后,我遇到了获取refresh_token的问题。获取代码后,我正在编写以下代码行,但它给了我内部服务器错误..
代码是
$.ajax("https://oauth.io/auth/access_token", {
type: "post",
data: {
code: result.code,
key: '5WeOrrR3tP6RyShR1',
secret: '2_q3tb_D_qgDwSGpt' },
success: function (data) {
console.log("result", data);
}
});
用于获取refresh_token的网址是什么?请有人帮助我。
感谢
答案 0 :(得分:5)
最近在js sdk中设置响应类型服务器端(获取代码& refresh_token)时出现了一个错误,因此如果使用静态版本,则可能需要重新下载oauth.js。
我猜你的jquery代码是服务器端(因为nodejs标签和代码的使用),但我有一个错误“no transport”i fixed with a new XMLHttpRequest。这是我的全部测试:
var jsdom = require('jsdom').jsdom;
var win = jsdom().createWindow();
var $ = require('jquery')(win);
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
$.support.cors = true;
$.ajaxSettings.xhr = function () {
return new XMLHttpRequest;
}
$.ajax("https://oauth.io/auth/access_token", {
type: "post",
data: {
code: process.argv[2],
key: 'xxxxxxxxxxxx',
secret: 'yyyyyyyyyyyy' },
success: function (data) {
console.log("result", data);
},
error: function() {
console.error(arguments);
}
});
我的结果如下:
{ access_token: 'xxxxxxxxxxx',
request:
{ url: '{{instance_url}}',
required: [ 'instance_url' ],
headers: { Authorization: 'Bearer {{token}}' } },
refresh_token: 'yyyyyyyyyyyyy',
id: 'https://login.salesforce.com/id/00Db0000000ZbGGEA0/005b0000000SSGXAA4',
instance_url: 'https://eu2.salesforce.com',
signature: 'zzzzzzzzzzzzz',
state: 'random_string',
provider: 'salesforce' }