【问题标题】:Strapi - Update Additional Fields on User ModelStrapi - 更新用户模型上的附加字段
【发布时间】:2019-04-29 10:25:26
【问题描述】:

问题说明:可以注册用户,但无法在单个请求中更新同一模型上的 customFields。详细解释如下。

我在 Strapi 上的 UserModel 中添加了其他字段。附加用户模型

我正在使用 Nuxt 构建一个前端,管理员用户可以在其中创建可以访问该网站的新用户。这不是常规注册,这是由站点管理员创建的用户。我想即使是定期注册我也会面临这个问题。 管理员拥有对 crud 用户的所有权限。

当我提交表单时,我收到了 Forbidden 错误。附表

以下是我处理提交的代码。我首先注册用户并根据用户 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() 一样但是是的,你的第一条评论让我想到了正确的方向。非常感谢。

标签: rest nuxt.js strapi


【解决方案1】:

你想update额外的用户字段(使用PUT方法)还是在注册过程中将它们传递到后端(使用POST方法)?

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

  1. 向您的用户模型添加字段(已经完成)

  2. 使/update 端点在用户权限配置中可用。 看截图:

  3. 现在您可以在端点 users/:id 上使用 PUT 方法,您可以这样做,例如像这样:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 2020-10-20
    • 1970-01-01
    相关资源
    最近更新 更多