
## 概述
这个n8n工作流提供了一个全面的用户认证和管理解决方案,利用Airtable作为后端数据库。它包含用户注册和登录流程,以及示例的CRUD操作,包括检索用户详细信息和更新用户信息。
## 工作流详解
### 用户注册流程
1. **接收POST请求**:Webhook监听包含新用户详细信息(邮箱、名字、姓氏、密码)的POST请求
2. **检查邮箱是否存在**:工作流查询Airtable检查提交的邮箱是否已存在
3. **处理邮箱已使用情况**:如果找到邮箱,则响应{“response”: “email in use”}
4. **创建新用户**:如果邮箱唯一,密码使用SHA256哈希(Base64编码),用户信息(包括哈希密码)存储在Airtable中,然后发送成功响应{“response”: “success”}
### 用户登录流程
1. **接收POST请求**:Webhook监听包含用户邮箱和密码的POST请求进行登录
2. **验证用户存在**:检查Airtable中是否存在提供邮箱的用户。如果未找到用户,则响应失败消息(”wrong email”)
3. **比较密码**:如果找到用户,提交的密码被哈希(SHA256,Base64编码)并与Airtable中存储的哈希密码进行比较
4. **响应JWT或错误**:如果密码匹配,则发出包含用户ID和邮箱的JWT令牌。如果不匹配,则发送”wrong password”响应
### 已登录用户的流程
这些流程需要JWT认证请求。
**获取用户详细信息:**
– Webhook(GET):接收JWT认证请求
– Airtable(读取):使用jwtPayload.id获取当前用户的记录
– Set节点(”指定当前详细信息”):将”名字”、”姓氏”、”邮箱”和”日期”等字段从Airtable映射到标准输出格式
**更新用户详细信息:**
– Webhook(POST):接收更新的用户数据(邮箱、姓名、密码)
– Airtable(更新插入):使用提交的字段更新与jwtPayload.id匹配的记录
– Set节点(”指定新详细信息”):以标准格式输出更新的数据
## 设置步骤(约5分钟)
### 步骤1:设置Airtable基础和表格
您需要一个Airtable基础和一个表格来存储用户数据。确保您的表格至少有以下列:
– 邮箱(单行文本)
– 名字(单行文本)
– 姓氏(单行文本)
– 密码(单行文本 – 这将存储哈希密码)
– 日期(日期 – 可选,用于用户注册日期)
### 步骤2:获取Airtable个人访问令牌
1. 访问Airtable网站并登录您的账户
2. 导航到您的个人访问令牌页面(通常在您的开发者设置下或通过搜索”个人访问令牌”找到)
3. 点击”创建新令牌”
4. 给您的令牌命名(例如”n8n用户管理”)
5. 授予必要的权限:
– 范围:data.records:read, data.records:write 用于您将使用的特定基础
– 基础:选择您的用户管理表格所在的Airtable基础
6. 生成令牌并立即复制。您将无法再次看到它。请安全存储
### 步骤3:在n8n中创建JWT认证凭据
1. 在您的n8n实例中,转到”凭据”(通常在左侧边栏中找到)
2. 点击”新建凭据”并搜索”JWT Auth”
3. 给凭据命名(例如”UserAuthJWT”)
4. 对于”签名密钥”,输入一个强大的随机字符字符串。此密钥将用于签署和验证您的JWT令牌。请高度保密此密钥
5. 保存凭据
## 自定义选项
此工作流设计为高度适应性强:
– **数据库集成**:通过将Airtable节点替换为n8n中适当的数据库节点,可以轻松从Airtable切换到其他数据库,如PostgreSQL、MySQL、MongoDB,甚至Google Sheets
– **认证方法**:通过添加额外的节点,将认证扩展到包括多因素认证(MFA)、社交登录(Google、Facebook)或与现有身份提供商(IdP)集成
– **用户配置文件字段**:通过调整Airtable表格列和工作流中的Set节点,添加或删除用户配置文件字段(例如电话号码、地址、用户角色)
– **通知系统**:集成通知系统(例如电子邮件、短信)用于新用户注册、密码重置或账户更改等事件
– **管理面板**:使用n8n构建管理面板,直接管理用户,包括添加、删除或更新用户记录以及重置密码的功能
此工作流为构建强大的用户管理系统提供了坚实的基础,适用于广泛的应用和安全要求。

评论(0)