我正在使用 truevault API 实现忘记密码功能。现在,我一直在使用 Postman 测试流程后的请求,并且它可以工作,但是,当我开始使用 axios 编码时,它不断抛出有关身份验证的问题。我尝试了几种组合(合乎逻辑的组合,而不仅仅是随机的疯狂)。
另外,值得一提的是,我能够从 UI 中列出我的 truevault 用户(不仅是邮递员),并尝试将相同的原则模仿到发布请求中,但它没有用
这是对我有用的邮递员请求:
- 对于 url 请求,方法是:POST
- 网址:https ://api.truevault.com/v1/password_reset_flows
- 对于授权选项卡,我使用 truevault 用户 API 密钥填写“用户名”字段,并将“密码”字段留空
- 在“正文”选项卡中,我用 Json 文本填充它,对于单选按钮选项,我选择了 raw,并选择了 json 作为格式。(这些是唯一使用的选项卡)
json主体如下
{
"name":"XXXXX password reset",
"sg_template_id":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXcf42",
"sg_api_key":"XX.XXXXXXXXXXXXXXXXXXXXXX.XXXXXX_XXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXZftJo",
"user_email_value_spec":{
"system_field":"username"
},
"from_email_value_spec":{
"literal_value":"do-not-reply@XXXXXX.com"
},
"substitutions":{
"{{FIRST_NAME}}":{
"user_attribute":"first_name"
}
}
}
结果是成功的,
现在,当我尝试使用 axios 时,我不断收到身份验证错误。代码如下:
createPasswordResetFlow()
{
axios.defaults.headers.common["Authorization"] = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX27"; //tv user API KEY
axios.defaults.headers.post["Content-Type"] = "application/json";
var request = axios.post("https://api.truevault.com/v1/password_reset_flows",
{
auth:
{
username: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX27',
password: ""
},
data:
{
"name": "XXXXX password reset",
"sg_template_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXcf42",
"sg_api_key": "XX.XXXXXXXXXXXXXXXXXXXXXX.XXXXXX_XXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXZftJo",
"user_email_value_spec":
{
"system_field": "username"
},
"from_email_value_spec":
{
"literal_value": "do-not-reply@XXXXXX.com"
},
"substitutions":
{
"{{FIRST_NAME}}":
{
"user_attribute": "first_name"
}
}
}
})
.then((res) =>
{
console.log(res);
return res.data.users;
})
.catch(error =>
{
console.log('error', error);
return error;
});
}
如前所述,我一直在研究和尝试,但无济于事,如果有人可以帮助我。