【发布时间】:2019-04-29 10:25:26
【问题描述】:
问题说明:可以注册用户,但无法在单个请求中更新同一模型上的 customFields。详细解释如下。
我在 Strapi 上的 UserModel 中添加了其他字段。附加用户模型
我正在使用 Nuxt 构建一个前端,管理员用户可以在其中创建可以访问该网站的新用户。这不是常规注册,这是由站点管理员创建的用户。我想即使是定期注册我也会面临这个问题。 管理员拥有对 crud 用户的所有权限。
以下是我处理提交的代码。我首先注册用户并根据用户 ID 尝试更新名字和姓氏。
handleSubmit() {
if (this.$refs.form.validate()) {
this.loading = true
// console.log(this.username, this.email, this.password)
strapi
.register(this.username, this.email, this.password)
.then(response => {
console.log(response)
strapi
.updateEntry('users', response.user.id, {
firstName: this.firstname,
lastname: this.lastname
})
.then(response => {
this.loading = false
this.$router.push('/users')
})
.catch(err => {
this.loading = false
// alert(err.message || 'An error occurred.')
this.errorMessage = true
this.errorMessageContent = err.message || 'An error occurred.'
})
})
.catch(err => {
this.loading = false
// alert(err.message || 'An error occurred.')
this.errorMessage = true
this.errorMessageContent = err.message || 'An error occurred.'
})
}
}
【问题讨论】:
-
strapi.register 操作还会将该用户登录,因此我认为您操作的第二部分将发送一个标头,因为该用户似乎没有更新用户的权限。也许您可以销毁该标头并推送您的管理员用户。
-
谢谢@Andrew1325。我会检查一下。
-
@Andrew1325 我需要一些帮助,如果我销毁了令牌,如何将令牌取回管理员?是否可以立即销毁新用户的令牌,或者是否有一个标志说不要存储令牌?
-
因为您是作为管理员创建用户的,所以您应该能够使用
strapi.createEntry('users', ...而不是strapi.register,并在一个请求中发送所有用户数据。您将在不登录该用户的情况下让该用户返回响应。 -
谢谢@Andrew1325,在这种情况下我继续使用Axios,它与strapi.createEntry() 一样但是是的,你的第一条评论让我想到了正确的方向。非常感谢。