使用oauth.io刷新Refresh_token

时间:2014-01-19 15:00:13

标签: node.js oauth

您好,我是计算机科学专业的学生,​​并在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的网址是什么?请有人帮助我。

感谢

1 个答案:

答案 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' }