NodeJS - 生成 OAuth 1.0a 签名

Rba*_*bar 5 oauth node.js firebase

有没有一种标准化的方法可以oauth_signature在 NodeJS 中为 OAuth 1.0a生成一个?


尝试 1 (+?)

Intuit 的文档(这是我需要签名的内容)中,声明oauth_signature需要获取 OAuth 请求令牌:

oauth_signature 您的应用程序为每个请求生成的唯一字符串。不要尝试手动生成此值,而是根据您的语言使用多个OAuth 社区资源之一。

这些OAuth 社区资源为 NodeJS 列出了以下内容:

我查看了每个资源,但似乎每个资源都用于 OAuth2.0(不是 OAuth 1.0a)并且没有明确的方法来生成oauth-signature(尽管希望我在这里遗漏了一些东西)。


尝试 2

我找到了一个npm 项目,用于生成oauth_signature并尝试按照文档的说明实施和测试它:

var httpMethod = 'GET',
    url = 'http://photos.example.net/photos',
    parameters = {
        oauth_consumer_key : 'dpf43f3p2l4k3l03',
        oauth_token : 'nnch734d00sl2jdk',
        oauth_nonce : 'kllo9940pd9333jh',
        oauth_timestamp : '1191242096',
        oauth_signature_method : 'HMAC-SHA1',
        oauth_version : '1.0',
        file : 'vacation.jpg',
        size : 'original'
    },
    consumerSecret = 'kd94hf93k423kf44',
    tokenSecret = 'pfkkdhi9sl3r4s00',
    // generates a RFC 3986 encoded, BASE64 encoded HMAC-SHA1 hash 
    encodedSignature = oauthSignature.generate(httpMethod, url, parameters, consumerSecret, tokenSecret),
    // generates a BASE64 encode HMAC-SHA1 hash 
    signature = oauthSignature.generate(httpMethod, url, parameters, consumerSecret, tokenSecret,
        { encodeSignature: false});
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,我还注意到Dependency Status 为Insecure。根据进一步挖掘,其依赖项存在安全漏洞,这让我觉得我根本不应该使用它。


任何关于如何为 OAuth 1.0a 生成 oauth_signature 的方向都将不胜感激。在此先感谢您的任何建议。