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

互联网医院13用户体系基石——账号注册与登录态的“无感恢复”

目录

  • 1. 用户登录设计思路
  • 2. 数据库设计:用户基础信息表
  • 3. 用户登录流程
  • 4. 个人中心页面搭建
    • 4.1 创建页面
    • 4.2 创建变量
    • 4.3 调用登录
    • 4.4 视图搭建:根据状态动态切换
    • 4.5 显示昵称和头像
  • 5. 总结

1. 用户登录设计思路

很多初次接触低代码的开发者,还是按照既定思维,一上来就搭建个登录页面,要求用户输入用户名和密码进行登录。

这个思路是错的,因为云开发本身提供了登录,你自己搭建一个也无法绕过他的机制。

如果只是使用云开发自带的登录也是不行的,他的用户名和密码登录只针对内部用户,小程序无法使用。

而外部用户局限性很大,输入手机号和验证码就登录注册了,有的小程序需要后台审核才可以使用,这就没办法自定义权限。

而且外部用户的数据表是封闭的,一个是不能通过API读取数据,第二是不可以修改表结构,更不要说做什么权限控制了。

我们在设计的时候就需要先做一个业务表,我们来自己控制结构和权限,实现我们的业务规则。


2. 数据库设计:用户基础信息表

这张表非常轻量,只存用户的身份信息,不存身份证号等敏感医疗数据

表名t_user(用户基础表)

字段名标识类型必填说明
手机号mobile文本核心索引,存 +86…
昵称nickname文本用户展示名称
头像avatar图片/文件存储 cloud:// 路径


3. 用户登录流程

当你已经通过云开发的登录页面,访问到我的页面的时候,这个时候从当前登录对象里就可以获取到用户的手机号。我们可以用这个手机号去查询用户表,如果找到数据,说明这个用户已经注册了,那我们就显示头像和昵称。如果没有找到数据,说明尚未注册,提供注册按钮供用户注册。


4. 个人中心页面搭建

4.1 创建页面

点击创建页面的图标,创建我的页面

切换到布局设计,选择tab栏导航布局,配置我的菜单

4.2 创建变量

先创建一个内置数据表查询,用来读取用户信息

因为编辑器里是获取不到用户的手机号的,我们可以创建一个全局变量来方便调试

配置查询条件的时候,我们就可以先去查用户的手机号,没有我们就给全局的手机号

$w.auth.currentUser.phone||$w.app.dataset.state.phone

然后创建一个页面变量,用来防止页面的抖动

4.3 调用登录

变量定义好之后,什么时候初始化呢?我们可以在页面的生命周期函数中进行加载。选中页面组件,设置页面显示的事件

调用数据查询,触发执行

执行成功时将我们的isLoading设置为false


4.4 视图搭建:根据状态动态切换

低代码本身的机制是比较慢的,他区分不同的版本,个人版查询速度最慢,标准版其次,企业版要稍好一点。

这就会带来一个问题,你会看到页面一加载既有用户注册的视图,又有用户登录的视图,等数据加载完了才会出现一个唯一的视图。

这时候我们就需要用isLoading来控制,先添加一个普通容器,里边添加一个普通容器和一个网格布局

给普通容器绑定条件展示,作为第一个出现的视图

里边添加一个文本组件,显示数据正在加载中

网格布局的条件展示,我们取反就可以

4.5 显示昵称和头像

数据加载完毕之后,我们就需要显示用户的头像和昵称,在网格布局的第一列里添加普通容器,里边添加图片组件和普通容器

设置外层的普通容器布局为横向排列

设置图片的布局模式为裁剪填满,设置宽和高各为60


绑定图片地址,如果用户登录了就从用户的头像绑定,如果未登录我们给一个素材

内层普通容器里添加文本和按钮组件

文本组件也是一样的,如果登录了显示用户的昵称,如果未登录显示匿名用户

给按钮绑定条件展示

这样我们的登录视图就搭建好了


5. 总结

通过这套机制,我们实现了:

  1. 安全:用户只能注册自己的手机号。
  2. 稳健:无论用户怎么切后台,只要再次打开小程序,onShow里的查询逻辑就会自动恢复用户身份,不会出现“变量为空”的白屏 Bug。
  3. 体验:注册完成后无需跳转,视图原地刷新,无缝衔接。
http://www.zskr.cn/news/142299.html

相关文章:

  • 【独家首发】Open-AutoGLM开源项目全剖析:国内首个GLM自动调优框架(含GitHub地址)
  • 2025年靠谱的不锈钢洗漱台/不锈钢浴室柜厂家最新权威实力榜 - 品牌宣传支持者
  • 2025年自动化立体库选购攻略:十大热门品牌深度测评,重型货架/仓储货架/轻型货架/阁楼货架/穿梭式货架/层板货架自动化立体库制造商排名 - 品牌推荐师
  • 如何结合国产信创动环监控系统提升设备运维效率?
  • 《lvgl基础学习 —— 消息机制》
  • 【ACM-湖南师范大学主办】第三届智慧教育与计算机技术国际学术会议(IECT 2026)
  • 解锁办公自动化新境界:VBA——你的高效办公利器
  • 扭蛋机小程序开发、让扭蛋更有意思!
  • 2025年靠谱的开口自粘铝箔橡塑管/橡塑隔音材料厂家最新实力排行 - 品牌宣传支持者
  • 2025年比较好的FVDH-280度防火阀/不锈钢防火阀行业内口碑厂家排行榜 - 品牌宣传支持者
  • Open-AutoGLM Windows部署实战全流程(专家级避坑手册)
  • 2025耐酸碱玻璃钢格栅厂家哪家好?船用玻璃钢格栅厂家盘点及推荐 - 栗子测评
  • Python文件读写全攻略(零基础也能轻松掌握的Python文件操作教程)
  • Open-AutoGLM 2.0原理全拆解(20年架构师亲授性能优化秘诀)
  • 从零构建AutoGLM系统,MCP模块实现全路径指南,开发者必看
  • 【Open-AutoGLM设备配置全解析】:20年专家揭秘高效运行所需硬件清单
  • 抖音火开源我的进化之路网页文字游戏源码带搭建教程
  • 数据一致性保障:从理论深度到架构实践的十年沉淀
  • 【计算机毕业设计案例】基于Java+springBoot的在线房屋租赁管理系统(程序+文档+讲解+定制)
  • 为什么我越来越警惕“直接用大模型做决策” 一个偏系统工程视角的反思
  • 企业建站必看:什么是网站模板?为什么是最佳性价比方案?
  • 【Open-AutoGLM 高阶应用秘籍】:如何让AI自主完成复杂电脑任务?
  • 【AutoGLM插件应用秘籍】:掌握这7个技巧,轻松驾驭智谱清言AI生态
  • 从DeepSeek看AI产业跃迁:大模型时代的技术变革与实战应用
  • 【Open-AutoGLM本地部署终极指南】:手把手教你从零搭建AI推理环境
  • 开源AI神器Open-AutoGLM发布(AutoGLM技术内幕首次公开)
  • Open-AutoGLM评分全网最高(三大核心指标领先第二名30%)
  • 智能测试用例生成:是效率革命,还是维护噩梦?
  • Spring 事务失效
  • 测试数据生成的“智变”:利用AIGC快速构建复杂、合规的测试数据。