如何将 Netlify GoTrue 用户迁移到 Appwrite
Migrating Netlify GoTrue Users
借助 Appwrite 1.0,我们很高兴地宣布您可以将不同平台的用户导入 Appwrite。这些平台之一是 Netlify GoTrue。在本教程中,
我们将向您展示如何从基于 GoTrue 的平台导出用户并将其导入 Appwrite。
首先,您可能想知道 Appwrite 到底是什么。 应用程序 是一个开源的后端即服务 (BaaS),打包为一组 Docker 微服务,为任何背景的开发人员提供快速、安全地构建现代应用程序所需的工具。
对于本教程,您将需要 节点JS 安装在您的机器上,因为我们将使用它来导出您的 GoTrue 用户并将其导入 Appwrite。我们还将在本教程的末尾提供一个脚本,您可以复制和粘贴该脚本以开始使用。
TL;博士 — GitHub 到已完成的项目
警告:密码少于六个字符的用户将无法使用 Appwrite;在这种情况下,我们建议向您的用户发送电子邮件以重置他们的密码。
现在,让我们进入我们的第一阶段。
从 GoTrue 导出用户
要从 GoTrue 导出用户,您需要连接到 Postgres 数据库并转储 auth.users 表。这可以使用 node-postgres 节点模块来完成。
使用 node-postgres 模块
首先,创建一个项目文件夹并使用 npm 安装 node-postgres 模块。
npm 安装 pg
接下来,创建一个名为 main.js 的文件并添加以下代码。
常量 { 客户 } = 要求('pg')
// 连接到您的 Postgres 数据库
常量客户端 = 新客户端({
用户:'postgres',
主机:'postgres_url',
数据库:'postgres',
密码:'你的密码',
端口:5432,
})
客户端.connect()
// 转储 auth.users 表
client.query('SELECT * FROM auth.users', (err, res) => {
如果(错误){
控制台日志(错误堆栈)
客户端.end()
} 别的 {
console.log('收到' + res.rowCount + '用户')
客户端.end()
返回 res.rows
}
})
此代码将连接到您的 GoTrue 数据库并转储 auth.users 表。然后,您可以使用 res.rows 变量来访问用户。在下一节中,我们将添加此代码以将用户导入 Appwrite。
将用户导入 Appwrite
现在我们已经从 GoTrue 中导出了用户,我们可以将它们导入 Appwrite。为此,我们将使用适用于 NodeJS 的 Appwrite Server SDK。
首先,我们将使用 NPM 安装 Appwrite SDK。
npm install node-appwrite
完成后,我们将扩展我们在上一节中编写的代码,以将用户导入 Appwrite。
在文件顶部添加以下内容,确保更新变量以匹配您的 Appwrite 实例:
const SDK = require('node-appwrite')
const appwriteClient = new sdk.Client()
应用程序写入客户端
.setEndpoint('http://localhost/v1') // 你的 API 端点
.setProject('projectKey') // 你的项目ID
.setKey('Server API Key') // 你的 API 密钥
.setSelfSigned() // 仅在具有自签名 SSL 证书的开发模式下使用
;
然后用以下代码覆盖 client.query
回调中的代码:
console.log('收到' + res.rowCount + '用户')
for (res.rows 的常量用户) {
console.log('正在导入用户' + user.email)
等待 users.createBcryptUser(
用户身份,
用户邮箱,
user.encrypted_password
)
}
console.log('导入成功' + res.rowCount + '用户')
客户端.end()
返回 res.rows
此代码将遍历每个用户并使用 users.createBcryptUser 方法在 Appwrite 中创建一个新用户。您可以在 Appwrite API 参考 .
完成所有这些后,您可以使用 node main.js 运行脚本,您的用户将被导入 Appwrite。确保您在 GoTrue 中有一个测试帐户,以验证导入是否成功。
结论
本教程向您展示了如何从基于 GoTrue 的平台导出用户并将其导入 Appwrite。我们还提供了一个脚本,您可以复制和粘贴它以开始使用。如果您有任何问题或意见,请随时加入我们的 不和谐 服务器。
该项目的完整版本可以在 GitHub 存储库中找到 这里 .
更多关于 Appwrite
Appwrite 是一个开源的后端即服务 (BaaS),打包为一组 Docker 微服务,为任何背景的开发人员提供快速、安全地构建现代应用程序所需的工具。
在 Discord 上与我们聊天,或者,了解有关 Appwrite 的更多信息:
查看 Appwrite 作为您下一个 Web、Flutter 或服务器端应用程序的后端。以下是一些方便的链接以获取更多信息:
• 应用程序文档
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/38952/32292411
标签:GoTrue,Netlify,res,用户,Appwrite,导入,客户端 From: https://www.cnblogs.com/amboke/p/16725248.html