如何将授权令牌从ReactJS传递到NodeJS请求

时间:2019-06-05 08:47:47

标签: node.js reactjs rest express

我正在尝试将axios get请求中的'token_mailchimp'传递给nodejs请求get

此刻,我直接从node / express项目中的app.js中的变量传递auth令牌。

node / express项目中的app.js

app.get('/mailchimp/campaigns', checkAuth, function (req, res) {
    request
        .get('https://' + mailchimpInstance + '.api.mailchimp.com/3.0/campaigns')
        .set('Content-Type', 'application/json;charset=utf-8')
        .set('Authorization', 'Basic '+token_mailchimp)
        .end((err, result) => {
            if (err) {
                res.status(500).json(err);
            } else {
                res.json(result.body);
            }
        });
});

axios在ReactJS项目中获取请求

.get('http://localhost:8081/mailchimp/campaigns',
                { headers: {"Authorization" : `Bearer `+jwt_token} })
            .then(({ data })=> {
                this.setState({
                    campaigns: data.campaigns
                });
            })
            .catch((err)=> {})

我如何从axios请求中传递请求/mailchimp/campaigns的身份验证令牌?

1 个答案:

答案 0 :(得分:2)

您可以发送一个新的自定义标头,例如x-api-token

{ headers: {"Authorization" : Bearer+jwt_token, "x-api-token" : "your_token"} }

然后在app.js中,访问请求中的标头,

const {headers} = req;

然后在您的API请求中使用它

.set('Authorization',`Basic ${headers["x-api-token"]}`)

注意:如果您使用的是cors插件,请确保它允许该标头通过。 您可以根据需要在cors配置中手动添加标头x-api-token