持票人oauth_problem =" token_expired"

时间:2015-08-15 08:14:20

标签: node.js express oauth-2.0 access-token yahoo-oauth

我想通过Yahoo OAuth 2.0 Authentication从雅虎获取联系人列表我得到了用户的正确信息。但每当我尝试获取联系人列表时,我都会收到错误token_expired。这是我使用的网址https://social.yahooapis.com/v1/user/' + user.guid + '/contacts' guid是正确的。我的代码如下:

app.get('/contacts', function(req, res) {
  if (!req.session.user) {
    return res.redirect('/auth/yahoo');
  }

  var user = req.session.user;
  var contactsApiUrl = 'https://social.yahooapis.com/v1/user/' + user.guid + '/contacts';

  console.log(user);
  var options = {
    url: contactsApiUrl,
    headers: { Authorization: 'Bearer ' + user.accessToken },
    rejectUnauthorized: false,
    json: true
  };

  request.get(options, function(err, response, body) {
    console.log(body);
    var contacts = body.contacts.contact.map(function(contact) {
      return contact.fields[0];
    });

    res.render('contacts', {
      title: 'Contacts',
      user: req.session.user,
      contacts: contacts
    });
  });
});

我的应用有权:

1-个人资料:读/写公共和私人

2-联系人:阅读

访问令牌应在3600秒后过期,但会立即过期。

我为此目的使用node.js(express.js)。 我已经搜索了这个问题,很多人建议刷新访问令牌,但是我的应用程序即使是第一次尝试获取它也没有获得联系人列表。所以,我猜还有其他一些问题。 我知道我还没有处理异常处理,当没有收到任何信息时应用程序崩溃但这不是问题。

0 个答案:

没有答案