Rest Strapi-更新用户模型上的其他字段

Rest Strapi-更新用户模型上的其他字段,rest,nuxt.js,strapi,Rest,Nuxt.js,Strapi,问题陈述:能够注册用户,但无法在单个请求中更新同一型号上的customFields。详细解释如下 我在Strapi上向UserModel添加了其他字段。附加用户模型 我正在使用Nuxt构建一个前端,管理员用户可以在其中创建可以访问网站的新用户。这不是常规注册,这是由网站管理员创建的用户。我想即使是一个普通的注册,我也会面临这个问题。 管理员拥有crud用户的所有权限 当我提交表格时,我得到了禁止的错误。附表格 下面是我处理提交的代码。我首先注册用户,然后根据用户id尝试更新名字和姓氏 han

问题陈述:能够注册用户,但无法在单个请求中更新同一型号上的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.'
      })
  }
}
下面是控制台消息。

您想
更新
附加用户字段(使用PUT方法)还是在注册过程中将它们传递到后端(使用POST方法)

如果要更新它们,必须执行以下操作:

  • 向用户模型添加字段(已完成)

  • 使
    /update
    端点在用户权限配置中可用。 请参见屏幕截图:

  • 现在,您可以在端点
    用户/:id
    上使用PUT方法,您可以这样做,例如:


  • 您想
    更新
    其他用户字段(使用PUT方法)还是在注册过程中将它们传递到后端(使用POST方法)

    如果要更新它们,必须执行以下操作:

  • 向用户模型添加字段(已完成)

  • 使
    /update
    端点在用户权限配置中可用。 请参见屏幕截图:

  • 现在,您可以在端点
    用户/:id
    上使用PUT方法,您可以这样做,例如:


  • strapi.register操作也会将该用户登录,因此我认为操作的第二部分将发送一个头,因为该用户似乎没有更新用户的权限。也许你可以销毁该标题并推送你的管理员用户一个。谢谢@Andrew1325。我会检查一下。@Andrew1325我需要一些帮助,如果我销毁了令牌,如何从管理员那里取回令牌?是否可以立即销毁新用户的令牌,或者是否有一个标志表明不存储令牌?因为您是作为创建用户的管理员执行此操作的,所以您应该能够使用
    strapi.createEntry('users',…
    而不是
    strapi.register
    ,并在一个请求中发送所有用户数据。您将在响应中获得用户,而无需登录该用户。谢谢@Andrew1325,我在本例中使用了Axios,它与strapi.createEntry()相同)但是,是的,你的第一条评论让我想到了正确的方向。非常感谢。strapi.register操作也会登录该用户,因此我认为你操作的第二部分将发送一个标题,因为该用户似乎没有更新用户的权限。也许你可以销毁该标题并推送你的管理员用户。谢谢@Andrew1325.我会检查一下。@Andrew1325我需要一些帮助,如果我销毁了令牌,我如何从管理员那里取回令牌?是否可以立即销毁新用户的令牌,或者是否有一个标志表明不存储令牌?因为您是以管理员的身份创建用户,所以您应该能够使用
    strapi.createEntry('users',…
    而不是
    strapi.register
    ,并在一个请求中发送所有用户数据。您将在响应中获得用户,而无需登录该用户。谢谢@Andrew1325,我在本例中使用了Axios,它与strapi.createEntry()相同)是的,你的第一句话让我想到了正确的方向。非常感谢。