当前位置: 首页 > wzjs >正文

郑州网站建设鹏之信在哪里查关键词排名

郑州网站建设鹏之信,在哪里查关键词排名,中华网,网站切图大图一、新增用户流程 1. 前端表单数据结构 interface UserCreateForm {email: string; // 登录邮箱phone?: string; // 手机号(可选)password: string; // 密码username: string; // 用户名real_name: string; // 真实…

一、新增用户流程

1. 前端表单数据结构

interface UserCreateForm {email: string;          // 登录邮箱phone?: string;         // 手机号(可选)password: string;       // 密码username: string;       // 用户名real_name: string;      // 真实姓名department?: string;    // 部门position?: string;      // 职位role_ids: string[];    // 角色ID数组
}

2. 数据流转过程

  1. 前端调用 Supabase Auth API
// 1. 首先创建 auth.users 表中的用户
const { data: authUser, error: authError } = await supabase.auth.admin.createUser({email: form.email,phone: form.phone,password: form.password,email_confirm: true,    // 直接确认邮箱user_metadata: {        // 这些数据会存储在 raw_user_meta_data 字段username: form.username,real_name: form.real_name}
})
  1. 触发器自动执行
-- 当 auth.users 新增数据时,触发器 handle_new_user 自动执行
-- 触发器会:
1. 在 user_profiles 表中创建用户扩展信息
2. 分配默认角色(user
  1. 后续更新用户信息
-- 通过之前创建的 update_user 函数更新其他信息
SELECT public.update_user(p_user_id := auth_user.id,p_department := form.department,p_position := form.position,p_role_ids := form.role_ids
);

二、注册用户流程

1. 前端表单数据结构

interface RegisterForm {email: string;          // 登录邮箱password: string;       // 密码username?: string;      // 用户名(可选)phone?: string;         // 手机号(可选)
}

2. 数据流转过程

  1. 前端调用 Supabase Auth API
const { data: authUser, error: authError } = await supabase.auth.signUp({email: form.email,password: form.password,phone: form.phone,options: {data: {              // 这些数据会存储在 raw_user_meta_data 字段username: form.username || form.email}}
})
  1. 触发器自动执行
-- 同样会触发 handle_new_user,但只会:
1. 创建基础的用户信息
2. 只分配 user 角色

三、两者的主要区别

  1. 权限要求

    • 新增用户:需要管理员权限
    • 注册用户:任何人都可以(除非关闭注册)
  2. 数据完整性

    • 新增用户:信息更完整(部门、职位等)
    • 注册用户:只有基本信息
  3. 角色分配

    • 新增用户:可以指定多个角色
    • 注册用户:只分配默认用户角色
  4. 邮箱验证

    • 新增用户:可以直接确认邮箱
    • 注册用户:通常需要邮箱验证
  5. 使用场景

    • 新增用户:内部员工账号创建
    • 注册用户:外部用户自主注册

四、数据表变化示例

新增用户时:

  1. auth.users 表
INSERT INTO auth.users (email, phone, encrypted_password, email_confirmed_at,raw_user_meta_data
) VALUES ('zhangsan@example.com','13800138000','[加密后的密码]',CURRENT_TIMESTAMP,  -- 直接确认{"username": "zhangsan","real_name": "张三"}
);
  1. user_profiles 表(触发器自动)
INSERT INTO public.user_profiles (id, username, real_name, department, position
) VALUES ('[auth.users生成的uuid]','zhangsan','张三','技术部','工程师'
);
  1. user_roles 表(手动指定)
INSERT INTO public.user_roles (user_id, role_id) VALUES
('[user_id]', '[admin_role_id]'),
('[user_id]', '[user_role_id]');

注册用户时:

  1. auth.users 表
INSERT INTO auth.users (email, phone, encrypted_password,raw_user_meta_data
) VALUES ('user@example.com','13900139000','[加密后的密码]',{"username": "user@example.com"}
);
  1. user_profiles 表(触发器自动)
INSERT INTO public.user_profiles (id, username, real_name
) VALUES ('[auth.users生成的uuid]','user@example.com','user@example.com'
);
  1. user_roles 表(触发器自动)
INSERT INTO public.user_roles (user_id, role_id) VALUES
('[user_id]', '[user_role_id]');  -- 只分配用户角色

这样的设计确保了:

  1. 数据一致性(通过触发器)
  2. 权限控制(通过角色)
  3. 流程区分(注册vs新增)
  4. 安全性(密码加密、邮箱验证)
http://www.dtcms.com/wzjs/24443.html

相关文章:

  • 怎么在网上做彩票网站seo全称英文怎么说
  • 山西省政府网站建设的公司查询seo
  • 温州市建设小学网站首页中国最新新闻
  • 江苏中南建设集团网站是多少钱百度站长管理平台
  • 义乌网站建设一个网站可以优化多少关键词
  • 周口做网站公司seo优化教程视频
  • 南京便宜网站建设谷歌推广开户
  • php做用户登录网站网络营销案例分析ppt
  • 模板网站与定制网站区别百青藤广告联盟
  • 贵阳网站建设培训班软文交易平台
  • 网站客服在线怎么做企业如何做网络推广
  • 用php做的网站前后台模板google推广公司哪家好
  • wordpress baeseo算法是什么
  • 做网站运营需要学什么软件中国最大网站排名
  • html5网站开发教程收录优美图片app
  • 南京做网站的网络公司营销宣传策划方案
  • 天津做美缝的网站1688黄页大全进口
  • 阿里云做外贸网站网络营销seo优化
  • 东营 网站 建设福建百度开户
  • 公司网站建设需求表网站推广及seo方案
  • 辽宁朝阳哪家做网站好上海seo公司排名榜
  • 网站建设优化论坛seo的作用主要有
  • 有可以做国外支付系统的网站吗百度怎么进入官方网站
  • 做海报图片去哪个网站找 知乎怎么提高百度关键词排名
  • 如何做视频网站不侵权企业网站设计方案
  • 智能音箱功能ui设计效果图热狗网站关键词优化
  • 太原建设银行保安招聘网站中山百度seo排名公司
  • 计算机多媒体辅助教学网站开发独立站seo优化
  • 长沙网站制作哪里好百度营销推广登录平台
  • 如何办理网站交换友情链接的条件