如何使用NodeJS“使用Twitter登录”

问题描述 投票:0回答:1

我试图用Twitter工作实现Sing In,但是我一直收到以下错误

哇那里!此页面的请求令牌无效。它可能已被使用或过期,因为它太旧了。请返回发送给您的网站或应用程序,然后重试;这可能只是一个错误。

这是我的代码,我做错了什么?

// Server
var OAuth = require('oauth').OAuth;
var callbackUrl = null;
var oa = new OAuth(
    'https://api.twitter.com/oauth/request_token',
    'https://api.twitter.com/oauth/access_token',
    CONSUMER_KEY,
    CONSUMER_SECRET,
    '1.0',
    callbackUrl,
    'HMAC-SHA1'
);

const promise = new Promise((resolve, reject) => {
    oa.getOAuthRequestToken(function(error, token, secret, results) {
        resolve({
            token,
            secret,
        });
    });
});

var oauth = await promise;
return { oauth };

// Client
window.open(`https://api.twitter.com/oauth/authenticate?oauth_token=${twitter.oauth.token})`);

我还将回调网址设置为与应用程序详细信息页面中的相同,但没有骰子!

var callbackUrl = 'http://0.0.0.0:3001/settings/social/twitter/oauth';

小记,不确定它是否有帮助,但我注意到返回的令牌比我在网上看到的例子短。例:

Mine: EBhy3AAAAAAA94TPAAABajDwCww%
Twitter Site: NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0&
javascript node.js twitter oauth
1个回答
1
投票

我的客户端代码有一个额外的“)”

window.open(`https://api.twitter.com/oauth/authenticate?oauth_token=${twitter.oauth.token})`);

应该读

window.open(`https://api.twitter.com/oauth/authenticate?oauth_token=${twitter.oauth.token}`);
© www.soinside.com 2019 - 2024. All rights reserved.