【问题标题】:Refresh_token using oauth.io使用 oauth.io 刷新令牌
【发布时间】:2014-02-08 16:46:07
【问题描述】:

您好,我是计算机科学专业的学生,​​正在 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); 
    }   
});

哪个 url 用来获取 refresh_token?请有人帮助我。

谢谢

【问题讨论】:

    标签: node.js oauth


    【解决方案1】:

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

    我猜你的 jquery 代码是服务器端的(因为 nodejs 标记和代码的使用),但我有一个错误“无传输”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' }
    

    【讨论】:

    • 我在服务器端使用 Asp.ne,它的工作和返回我的响应是这样的 { "oauth_token": "1855088594-6LmvjMTafZsaAunQ9t0nSoSk67ukd4g46r7MIIv", "oauth_token_secret": "LMwCeKQV​​3Ldz1r0zXddUZAZw0 “url”:“api.twitter.com”},“state”:{“oauthio_state”:“wapizbilal.bsse986@gmail.com”},“provider”:“twitter”}
    • 此响应中没有 refresh_token
    • twitter 不提供任何刷新令牌,因为它们的令牌不会过期(我认为仍然如此)。顺便说一句,你不应该在 SO 上发布你的令牌
    • 谢谢,我明白了,现在它可以工作了,我很高兴实际上我在最后一年的项目中使用了这个库。现在我将安装 oauthd 守护进程的开源版本...非常感谢 Mr.bumpmann
    猜你喜欢
    • 2014-07-08
    • 2016-09-16
    • 2015-03-05
    • 2015-09-18
    • 2019-06-29
    • 2022-10-31
    • 2020-07-12
    • 1970-01-01
    • 2016-04-23
    相关资源
    最近更新 更多