我正在尝试在wordpress网站上远程创建新用户,我正在使用所有wp网站上本机可用的rest api,我遇到的问题是,要创建新用户,您必须使用管理员帐户进行身份验证,在发送请求时出现错误:
Object {
"code": "jwt_auth_bad_auth_header",
"data": Object {
"status": 403,
},
"message": "Authorization header malformed.",
}
除了那些标题,如果有人可以帮助,我的功能还不错
signup = (e) => {
let { username, email, password, password2 } = this.state
if (username !== '' && email !== '' && password !== '') {
if (password === password2) {
this.setState({ loading: true, error: null })
var auth = 'Basic ' + Base64.encode('coolusername' + ':' + 'securepassword')
console.log(auth)
var url = 'https://example.com'
var request = new Request(url + '/wp-json/wp/v2/users', {
method: 'POST',
headers: new Headers({
'Content-Type': 'application/json',
'Authorization': auth
}),
body: JSON.stringify({
username: username,
email: email,
password: password
})
})
fetch(request)
.then((response) => {
response.json().then((results) => {
// ...
})
})
.catch(function (err) {
console.log(err)
})
} else {
this.setState({ error: 'Passwords do not match' })
}
} else {
this.setState({ error: 'Error: Missing fields' })
}
}
我认为引起此错误的原因是,'Authorization'
应该跟base64 username:password一起使用,但是当我尝试解码通过的字符串时,我得到的字符串与我输入的不完全相同,我以前使用过js-base64
npm库,它很好用。
[如果以后有人在寻找解决方案,我已经通过使用其他插件解决了该问题,.htaccess文件和wp-config.php文件不需要进行其他修改。
wp-rest-user
https://wordpress.org/plugins/wp-rest-user/
要使用REST API注册用户,请发送POST请求至 / wp-json / wp / v2 / users / register,带有JSON正文(设置标头: 内容类型:application / json),具有三个键:用户名,电子邮件和 密码。
要使用REST API检索密码,请发送POST请求至 / wp-json / wp / v2 / users / lost-password,包括JSON(设置标头: 内容类型:application / json)正文,带有三个键:user_login。