产品设计中的“注册”说明
在使用网站或应用的时候必不可少的就是账号系统,账号系统有些人可能觉得简单,无非就是账号密码。真的是这样吗?
一个完整的账号系统通常大家会分成四部分:
1.注册(手机号、邮箱、用户名/密码限制/验证码)
2.登录(已有账号/第三方授权/动态登录)
3.维护密码(修改密码/重置密码)
4.注销账号
由于篇幅有限,我们就不把所有部分都说明了,这里我们重点说一下“注册”。
以陪学网的注册为主要例子,一起来看看“注册”可以如何设计

很明显可以看出,用的是很常见的注册流程:输入用户名-输入密码-输入确认密码-输入邮箱-点击邮件激活-输入验证码-注册。
一、账号
从上面的图片看,采用的是自定义用户名的方式。这种方式下,用户自行填写自己的用户名,作为自己在网站上的名称。一般情况用户名的填写会做一些格式的限制。

陪学网就对用户名的长度做了限制。也可能会有其他的限制,比如注册QQ的时候,没有对长度做限制,但是对字符有规定:

另外一种常见的注册账号是手机号码。这也是现在非常流行的一种,尤其在移动端的APP上尤为常见,因为方便。比如微信、网易云音乐、抖音等。

还有一种注册账号是邮箱。用邮箱进行注册大多数是在WEB网站的注册中使用。常用的支付平台,除了用手机号之外,还可用邮箱进行登录。

现在有些WEB端的网站在产品升级更新之后,取消了邮箱注册,但之前已经注册的用户已让可以用邮箱登录。也就造成了登录方式有两种,但是注册方式只有一种的情况。

用手机号或者邮箱进行注册,并不意味这用户不可以设置自己的用户名,一般是可以在用户的个人信息中进行修改,在登录时可以使用用户名登录。
二、密码
密码的设置不同的应用或网站会有不同的规定,密码的设置有一点共同的是,不予许设置为汉字。长度、大小写、符号、数字、字母,从这几个方面去做密码的设置规定。
看看陪学网对于密码的规定是如何的。

可以看到,只对密码的长度做了规定,其它的均可以由用户自由发挥。有些密码的设置就较为复杂了。


密码长度不适宜过短,所以应用或网站均会对长度有一定限制。密码的复杂性就各自有不同的要求,一般建议不要过于简单。有一些会对一些特殊字符做出显示,比如上图的“不能包含空格”。
假如需要确认密码的话,很简单,只需要让两次输入的密码保持一致即可。

三、验证码
验证码需要由服务器提供,一是直接显示在页面中,二是发送到邮箱或者手机号。用户填写与验证码一直的内容即可通过系统的验证。陪学网采用的就是第一种,直接显示在页面中。

发送至邮箱或者手机号的验证码,前提是需要获取邮箱或手机,如果是使用邮箱或手机为注册账号的话,就可以直接点击获取了。

四、激活
有一些应用或网站在使用前需要进行激活,方可使用该账号,通过邮件进行激活是常见的激活方式。

为什么需要激活呢?激活有什么意义?
1、对用户客户端而言,激活是操作了数据库的某一状态,使账号处于开放状态,获得使用权。也是对身份一种核查,绑定了你的邮箱,方便通知你,或者密码找回等操作。
2、对服务器而言,防止了机器注册(大量生产无意义的注册),根据你的CPU和MAC地址生成一个激活码,确保了唯一性和真实性,从而减轻了服务器的压力。
3、对于游戏或者软件,可以用于购买使用权(激活码)来盈利,限制使用人数,保障服务器运行等。
上面我们通过陪学网的注册案例,给大家说明了一下在在账号的注册过程中不同的组成部分。一般情况下,会有明显的“注册”按钮,告诉用户直接点击可进行注册。

部分网站的注册并没有明显的按钮,需要从某个入口方可进行注册。比如网页版的网易云音乐,需要点击登录,在登录面板中切换至注册面板。

除了注册之后,我们还可以使用第三方的应用进行直接注册。值得注意的是,大部分的第三方登录在授权登录之后,依然需要关联手机号,其实这跟我们用手机号进行注册是一样的。
比如得到的APP。

最后,并不是所有的应用都可以在网页进行注册,这跟产品的性质有关系。比如瑞幸咖啡,用户通过手机使用;比如微信,普通用户也不能在网页进行注册。
通过产品的展示,可以很明确地知道,我们在进行“注册”的设计时,可以如何去进行设计,有什么类型可以去选择,不同类型有什么样的特点。再结合自己的产品,从而去设计出属于自己产品的合适的“注册”方式。
相关文章:
产品设计中的“注册”说明
在使用网站或应用的时候必不可少的就是账号系统,账号系统有些人可能觉得简单,无非就是账号密码。真的是这样吗? 一个完整的账号系统通常大家会分成四部分: 1.注册(手机号、邮箱、用户名/密码限制/验证码)…...
【linux学习】多线程(1)
文章目录 线程的概念线程与进程 线程的用法线程的创建多线程 线程的等待线程锁死锁 线程的概念 在Linux中,线程(Thread)是程序执行流的最小单位,是进程中的一个实体,负责在程序中执行代码。线程本身不拥有系统资源&…...
Leetcode 3149. Find the Minimum Cost Array Permutation
Leetcode 3149. Find the Minimum Cost Array Permutation 1. 解题思路2. 代码实现 题目链接:3149. Find the Minimum Cost Array Permutation 1. 解题思路 这一题的话就是一个动态规划的问题,不过他这个错位着实是把题目变得复杂了不少,唉…...
Python | 为列表中的元素分配唯一值
我们可以给列表中的所有数字分配一个唯一的值,重复时它会保留给它的值。这是一个非常常见的问题,在Web开发中,处理物品id时会遇到。让我们讨论一下解决这个问题的一些方法。 1. 使用enumerate() 列表解析 # initializing list test_list …...
HTML炫酷的相册
目录 写在前面 HTML简介 完整代码 代码分析 系列推荐 写在最后 写在前面 本期小编给大家带来一个炫酷的旋转相册,快来解锁属于你的独家记忆吧! HTML简介 HTML(全称为超文本标记语言)是一种用于创建网页结构和内容的标记语…...
C++笔试强训day20
目录 1.经此一役小红所向无敌 2.连续子数组最大和 3.非对称之美 1.经此一役小红所向无敌 链接 简单模拟即可。 需要注意的是: 除完之后有无余数,若有,则还可以再挨一次打。 #include <iostream> using namespace std; #define in…...
【PHP【实战项目】系统性教学】——使用最精简的代码完成用户的登录与退出
👨💻个人主页:开发者-曼亿点 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 曼亿点 原创 👨💻 收录于专栏:…...
Linux下的常用基本指令
基本指令 前言一、ls 指令语法功能常用选项举例注意要点关于拼接关于 -a关于文件ls与/的联用ls与根目录ls与任意文件夹ls与常用选项与路径 ls -d与ls -ldls与ll 二、pwd命令语法功能常用选项注意要点window与Linux文件路径的区别家目录 三、cd 指令语法功能举例注意要点cd路径.…...
phpstorm环境配置与应用
在 PhpStorm 中配置 PHP 开发环境及进行一些常用的应用设置涉及以下几个主要步骤: ### 1. 安装和激活 PhpStorm - **下载安装**: 访问 JetBrains 官网下载最新版本的 PhpStorm 安装包,然后按照提示进行安装。 - **激活**: 启动 PhpStorm,你可…...
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 水平布局Horizontal Layout
博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 布局管理器 | 水平布局Horizontal Layout 文章编号&…...
Hive Aggregation 聚合函数
Hive Aggregation 聚合函数 基础聚合 增强聚合...
Unity 性能优化之GPU Instancing(五)
提示:仅供参考,有误之处,麻烦大佬指出,不胜感激! 文章目录 前言一、GPU Instancing使用方法二、使用GPU Instancing的条件三、GPU Instancing弊端四、注意五、检查是否成功总结 前言 GPU Instancing也是一种Draw call…...
LeetCode 138. 随机链表的复制
目录 1.原题链接: 2.结点拆分: 代码实现: 3.提交结果: 4.读书分享: 1.原题链接: 138. 随机链表的复制 2.结点拆分: ①.拷贝各个结点,连接在原结点后面; ②.处…...
【PC微信小程序点不动处理方法】
描述 在使用电脑小程序抓包的时候发现原来能点的小程序今天不能点了。就是原来有个输入车牌号的输入框点击会出现车牌号键盘,现在不行了,经过卸载安装发现不是微信的问题,是WeChatAppEx.exe 的bug。早期使用的是不带ex的都没有问题升级以后&…...
量化交易:日内网格交易策略.md
哈喽,大家好,我是木头左! 本文将详细介绍日内网格交易策略的原理,并结合Python代码示例,展示如何在掘金平台上实现这一策略。 策略原理 日内网格交易策略的核心思想是在一天的交易时间内,通过设置多个买卖…...
Ubuntu 20.04在Anaconda虚拟环境中配置PyQt4
一、创建一个虚拟环境 1 创建一个python2.7的虚拟环境: conda create -n pyqt4 numpy matplotlib python2.72 在环境中安装几个需要的包: pip install Theano pip install python-opencv3.4.0.14 pip install qdarkstyle pip install dominate二、在主…...
charts3D地球--添加航线
要在地球视角下画出海运路线图 方案 添加 globl 地球创建geo地理坐标系创建canvas对象用于承载地图世界地图this.worldChart //初始化canvas节点let cav document.createElement("canvas");this.$echarts.registerMap("world", geoJson);this.worldCha…...
变色龙还是树懒:揭示大型语言模型在知识冲突中的行为
你是知识变色龙还是树懒?我今天在ICLR学到一个很有趣的术语,叫做证据顺序(order of evidence)。 大模型RAG处理知识冲突的探讨: 在检索增强生成(Retrieval-Augmented Generation, RAG)的过程中,技术团队会将检索到的前几名文档作为证据,并提示(prompt)给大型语言模型(Large La…...
Android OpenMAX(四)OMX Core
假设我们已经写好了所有的OMX组件,有vdec、venc、adec、aenc,接下来问题来了,我们应该如何管理这些组件呢(创建、销毁)?这一篇文章我们向上一层学习OMX Core提供的标准API。 OMX Core代码位于 OMX_Core.h OMX Core在OpenMAX IL架构中的位置位于IL Client与实际的OMX组件之…...
【Linux】轻量级应用服务器如何开放端口 -- 详解
一、测试端口是否开放 1、测试程序 TCP demo 程序(可参考:【Linux 网络】网络编程套接字 -- 详解-CSDN博客) 2、测试工具 Windows - cmd 窗口 输入命令:telnet [云服务器的公网ip] [port] 二、腾讯云安全组开放端口 1、安全组设…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...
