具有Node,Express和Request的OAuth2

时间:2018-01-20 18:41:41

标签: node.js express oauth-2.0 mailchimp-api-v3.0 node-request

我一直在尝试使用Node,Express和Request建立一个简单的Oauth2流程,但我一直在令牌请求阶段遇到问题。在我的具体示例中,我使用MailChimp运行Oauth2,但任何平台都存在问题。

在此示例中,在我发布代码以获取令牌后,我收到一条回复,告诉我{ error: 'invalid_request', error_description: 'Invalid grant_type parameter or parameter missing' }。这让我觉得我没有正确发布数据......我已经确信它是我的逻辑中缺少的一些核心概念。任何建议都表示赞赏。

这就是我正在做的事情:

/* Redirect the user to MailChimp login */
app.get(`/login`, function (req, res) {
    res.redirect(url.format({
      pathname: 'https://login.mailchimp.com/oauth2/authorize/',
      query: {
        response_type: 'code',
        client_id: client_id,
        redirect_uri: 'http://127.0.0.1:3000/auth/'
      }
    }));
});

/* Recieve the code from MailChimp, and post it back to request a token */
app.get(`/auth`, function (req, res) {
    request.post('https://login.mailchimp.com/oauth2/token', {
        json: true,
        gzip: true,
        body: {
            grant_type: 'authorization_code',
            client_id: client_id,
            client_secret: client_secret,
            redirect_uri: 'http://127.0.0.1:3000/authed',
            code: req.query.code,
        },
    }, function (err, response, body) {
        console.log(response);
    });
});

/* Success! We'll do something with the token here... */
app.post('/authed', function(req, res) {
    res.send('we did it!')
});

0 个答案:

没有答案