使用oauth.io刷新Refresh_token

bil*_*tla 1 oauth node.js

嗨,我是计算机科学的学生,并在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); 
    }   
});
Run Code Online (Sandbox Code Playgroud)

哪个url用于获取refresh_token?请有人帮助我.

谢谢

bum*_*ann 5

当您设置响应类型服务器端(获取代码&refresh_token)时,js sdk中最近出现了一个错误,因此如果您使用静态版本,则可能需要重新下载oauth.js.

我猜你的jquery代码是服务器端(因为nodejs标签和代码的使用),但我有一个错误"没有传输",我用新的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);
    }
});
Run Code Online (Sandbox Code Playgroud)

我的结果如下:

{ 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' }
Run Code Online (Sandbox Code Playgroud)