如何在 Netlify Identity 上存储自定义用户数据?

Jos*_*ose 5 authentication netlify

在过去的三个月里,我一直在使用 Netlify 来存储 100% 的应用程序(前端和后端)。到现在为止还挺好。

现在唯一的问题是我需要为每个用户存储一个自定义属性(比如电话号码),显然 Netlify Identity 不支持这个(只有电子邮件、姓名和角色https://www.netlify.com/文档/身份/)。

我不想为了这个细节而改变整个应用程序以迁移到另一个托管服务提供商(实际上,我不能,它是针对客户的,我只是没有时间),因为它很好用,但是在同时我需要它。

你能想到任何解决方法吗?“hackish”越少越好,但我知道我超出了 Netlify Identity 的预期用途。

KMc*_*oon 7

所以它实际上看起来像 Netlify 的 GoTrue API 有一个特定的端点来更新自定义用户数据。创建用户后,您可以通过将元数据作为“数据”包含在向 /user 发出的经过身份验证的 PUT 请求中来更新元数据。

PUT /用户

{
  "data" {
    "custom_key": "value",
  }
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅https://github.com/netlify/gotrue


foo*_*ool 5

有几十种方法可以做到这一点,所以我现在将讨论两种普遍适用的方法:

  • 最“通用”的可能是使用 lambda 函数:https : //www.netlify.com/docs/functions。这使您可以运行动态代码,例如“存储到其他地方托管的数据库”或“通过电子邮件发送给我们的办公室经理以更新电子表格”甚至“提交到我们关闭的 git 存储库,以便它在代码中可用”(最后一个可能是最坏的做法,但有可能)。您可以类似地使用函数读取该数据而不暴露 API 令牌(代码示例:https : //github.com/netlify/code-examples/tree/master/function_examples/token-hider

  • 您可以通过表单提交 ( https://www.netlify.com/docs/form-handling )收集数据。我可能会使用 zapier.com 来接收表单提交的通知(https://www.netlify.com/docs/form-handling/#notifications)。Zapier当然可以连接到地球上的任何东西:)。如果您想在 UI 中显示数据,将数据取回是一个更大的挑战,但是如果您需要连接到某个私有数据存储以将其取出,则可以使用上述功能。或者对于 MVP,只是不显示它,只让人们输入/更新它;)