【问题标题】:Unable to get Tumblr API OAuth Request token in Nodejs无法在 Nodejs 中获取 Tumblr API OAuth 请求令牌
【发布时间】:2015-07-17 22:00:19
【问题描述】:

我很难通过 Node 连接到 Tumblr API。 它甚至没有向我显示 request_tokens 让我继续

var OAuth = require('oauth').OAuth
var oa = new OAuth(
  "http://www.tumblr.com/oauth/request_token",
  "http://www.tumblr.com/oauth/access_token",
  tumblrClientId,
  tumblrClientSecret,
  "1.0A",
  tumblrCallback,
  "HMAC-SHA1"
);

 oa.getOAuthRequestToken(
      function(error, oauth_token, oauth_token_secret, results) {
        if (error) {
          console.log(error);
          res.send("Authentication Failed!");

        }
        else {

          data = {
            token: oauth_token,
            token_secret: oauth_token_secret
          };
          console.log("OAuthToken"+data.oauth_token);
          console.log("OAuthTokenSecret"+data.oauth_token_secret);


        }
      }
    );

我的 console.log 语句的输出是: {}

【问题讨论】:

    标签: node.js oauth tumblr


    【解决方案1】:

    对于所谓的authorization_code 授权类型(网络应用 OAuth 流程),最好使用比裸 oauth 模块更复杂的东西。

    您可以使用Grant,它是 Express、Koa 和 Hapi 的 OAuth 中间件,它也支持 Tumblr。

    所以基本上你的代码可能看起来像这样(如果你使用 Express):

    var express = require('express')
      , session = require('express-session')
    var Grant = require('grant-express')
      , grant = new Grant({
      server:{host:'localhost:3000', protocol:'http'}
      tumblr:{
        key:'[CONSUMER_KEY]',
        secret:'[CONSUMER_SECRET]',
        callback:'/handle_tumblr_callback'
      }
    })
    
    var app = express()
    app.use(session({secret:'keyboard cat'}))
    // mount grant
    app.use(grant)
    // other middlewares ...
    

    对于您的 OAuth 应用程序中的 redirect_uri,您应该设置 http://localhost:3000/connect/tumblr/callback

    有一个lengthy article 关于一般 OAuth 以及如何使用 Grant。更多示例可以在here找到。

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-02
      • 2014-09-01
      相关资源
      最近更新 更多