对2b、2c账号体系的思考
- 2b:to business,对商业(机构);2c:to consumer,对消费者(个人)
- 2b的产品:主要针对机构、企业的产品;2c的产品:主要针对消费者、个人的产品
假设你想推出一款针对记者,提高他们工作效率的产品,那么在设计账号体系时需要好好思考这个问题:这款产品它是2b还是2c的
不要小看这个问题,这个问题的答案会决定这个产品的账号体系的结构,以及账号体系后续的可扩展性。有这么严重么?是的。
那好,那就先回答这个问题:国内的记者大部分都是属于机构的,比如新华社、人民日报等。这些报社都是机构,假设这款产品就面对2b的产品。要想把产品推广到这些机构,暂且先按照面向2b的模式
去设计账号体系。考虑下面的问题:
面向2b的模式
- 一个机构往往很多人,第一个问题就是能够把一个机构下的用户都归属到这个这个机构;
- 第二个问题:谁来创建机构中的用户?
- 第三个问题:机构中的用户如何登陆,通过手机?邮箱?用户名?
把这三个看似简单的问题考虑清楚,基本上就能设计出正确2b账号体系。那一一来回答这三个问题:
- 这个问题好解决,我在用户表中增加一个字段
orgId
用来标识这个用户是属于哪个机构;必须先有机构实体才有机构用户,机构用户不能脱离机构
- 第二个问题映射到机构中来:肯定是主管人事的领导把你拉到这个企业中来的,那么在产品中也应该由这个角色帮你创建账号。我们暂且将这个角色叫做管理员,这里需要注意的是一个机构中的管理员往往有多个,设计的表结构的时候需要考虑到这一点。同理,机构中还有其他的角色;
避免用显示字段来表示用户角色,应该用权限去划分用户角色
- 第三个问题其实是在问:到底什么才是用户在这个机构中的标识,手机号?不,不能是手机号。因为手机号是属于个人的,不随着机构的产生而产生、机构的消亡而消亡。邮箱同理,也不合适(这里指的是个人邮箱,机构专属邮箱除外)。所以最好使用使用机构专属用户名(以及任意只要在你这个产品上不会重复的标识,如企业专属个人邮箱)。
不能用个人信息作为机构用户标识,因为个人信息属于个人,用户标识需要做到机构级别的隔离
回答完这三个问题,可以看到该账号体系本质上是面向机构实体
的。
在这种模式下,假设有一个记者叫小明,小明既属于新华社北京分部有属于新华社浙江分部。那么小明应该在这两个机构中都有一个账号,几个例子:
- 新华社北京分部的账号为:小明@新华社北京分部
- 新华社浙江分部的账号为:小明@新华社浙江分部
这两个账号互不相干,账号数据也没有打通。这种模式的典型代表就是阿里云企业账号体系,阿里云企业账号登录名一般为:姓名@公司简称
。不同公司的账号后缀是不一样的,数据也是没有打通的。
当然阿里云也支持个人账号,个人账号登录时可以使用个人邮箱和个人手机号。上面提到:纯2b的账号体系是不能用个人信息作为登录方式,否则阿里云不知道你到底登录的是哪个账号。
难道阿里云用了两套数据库表:一套用于企业账号,一套用于个人账号?
我不知道阿里云底层是怎样设计的,但我可以提出我的猜想:数据库肯定只有一套表,个人账号只是企业账号的一种特例:这个企业中只有一个人
。企业信息表中有一个字段用来标识这家企业是正常的企业(多个人)还是特例的企业(一个人)。
那为什么特例企业中可以使用个人邮箱和手机号进行登录?
因为你在阿里云的个人账号只有一个,也就是说这样的特例企业只有一个,阿里云可以通过你的个人邮箱和手机号唯一查询到这家企业。
结论
面向2b的账号体现的本质是面向机构实体。先有机构再有机构用户,机构用户不能脱离于机构而存在。机构管理员拥有对机构管理员的生杀大权
上面聊了面向2b的账号模式,下面聊一下面向2c的账号模式。
面向2c的账号模式
面向2b的账号体系有一个痛点:同一个人(注意不是账号)不能在登录态中不能进切换企业。如小明登录新华社北京分社的账号后,不能直接切换登录到新华社浙江分社,必须先退出北京分社的账号后再登录浙江分社的账号。这时候小明可能会有疑问:都是我的账号,为什么不允许让我直接切换机构,还要重新登录一次,这不是纯属增添障碍吗
有这样的想法很正常,因为在现实社会中我们习惯从自身出发去思考问题。比如我在很多银行都有银行卡:建设银行、工商银行、招商银行等,虽然分布在不同的银行,但是这些银行卡都是属于我个人的。需要注意的是,在面向2b的账号体系中,你的账号并不属于你而是属于机构
。你的账号是根据机构进行隔离的,所以在登录态不能切换机构。
如何你用过钉钉,你可能会问了:为什么钉钉可以在登录态中进行企业切换?难道钉钉的账号体系不是面向2b的吗?
当然我也不是钉钉员工,我也不清楚钉钉的账号体系是怎样的,但我提出我的猜想:钉钉的账号体系本质上是面向2c的账号体系
。这时候你肯定想反驳:钉钉是面向企业的,它的账号体系怎么可能是面向2c的?好的,我们来回想一下,钉钉账号是谁创建的?是企业管理员吗?不,是你。是你通过个人邮箱&手机号创建的。当你创建好钉钉账号时,并没有加入任何企业,是企业管理员把你拉到企业中去的。你的钉钉账号是属于你个人的,你的账号独立于企业:既可以可以被拉到多个企业中,也可以不加入任何企业,有没有企业对你来说没有任何影响。面向2c的账号不依赖于企业,可以独立存在
。
现在来解释:为什么钉钉可以在登录态切换企业?因为你登录的账号是属于你的,就算你切换企业我也知道这个账号是属于你,只不过是切换了一个企业标识而已。放在QQ的场景下,你还是你,只不过是切换了一个群,继续聊天而已。
结论
面向2c的账号体现的本质是面向个人实体。个人账号可以独立存在。个人拥有对账号的修改权限。
两种模式的比较
- 2b账号:面向机构实体;2c账号:面向个人实体;
- 2b账号:账号属于企业。对企业管理员友好,可以新开、停用企业账号;2c账号:账号属于个人。对个人友好,企业管理员不能修改个人核心信息(如登录方式),只有个人才能修改;
- 2b账号:企业可以方便批量新建账号。这一点在对接外部企业账号时感受非常明显;2c账号:企业只能一个一个的拉别人进来,不能新建;
- 2b账号:登录态无法在企业间进行切换;2c账号:登录态可以随意在企业间进行切换;
对2b、2c账号体系的思考相关推荐
- 万字长文 | 一文带你读懂账号体系
本文由作者 阿境 于社区发布 经手过诸多项目,行业各异,类型各异,但却有个共同点:均涉及到账号体系,看似不难,但深究起来,却也值得思考,细细品味. 于是乎,便有了这篇文章. 阿境这次将从里到外仔细剖析 ...
- 一文读懂账号体系产品设计
一.账号体系的概念及价值 账号体系是用户在各平台上的通行证. 平台给与用户可持续的服务,用户在平台上获取价值,中间的媒介,便是账号体系. 阿境将其理解为维系用户与平台之间的枢纽. 注:本文中,账号=账 ...
- 常被混淆的账号体系与账户体系
账户体系是任意一款互联网产品都必有的基础体系,而账户体系的产品设计文章却寥寥无几.本文小编将从互联保险产品的账户体系入手,来聊一聊如何基于复杂业务场景构建一套完整账户体系. 账户体系.账号体系.用户体 ...
- 一文看透账号体系与账户体系的区别
账户体系是任意一款互联网产品都必有的基础体系,而账户体系的产品设计文章却寥寥无几.本文将从互联保险产品的账户体系入手,来聊一聊如何基于复杂业务场景构建一套完整账户体系. 01 账户体系.账号体系.用户 ...
- 微信支付开发(2) 微信支付账号体系
本文介绍微信支付账号体系各参数. 商户在微信公众平台提交申请资料以及银行账户资料,资料审核通过并签约后,可以获得表6-4所示帐户(包含财付通的相关支付资金账户),用于公众帐号支付. 帐号 作用 app ...
- nodebb接入已有的账号体系及实现单点登陆、更改nodebb样式及页面
一.前言 首先,当接到这个实现nodebb单点登陆这个功能需求时,自己还不太了解单点登陆的概念或者说过程原理.所以就只能一步一步入手,从接入自己的账号体系,覆盖已有的登陆体系开始. 二.接入自己的账号 ...
- 如何快速建立一个优秀的账号体系
在2014年下半年开始,只支持第三方账号登陆的应用在提交苹果的appstore审核的时候被拒绝,拒信如下: If we chose to log in with 微信, we were require ...
- 如何打通微信账号体系?
如果你的微信应用使用同一微信主体注册,Authing 会将终端用户自动识别为同一个用户,不需要你进行额外操作. 准备工作 你一共需要准备以下内容: 注册 Authing 开发者账号 使用同一个微信主体 ...
- 业务中台构建--业务驱动为核心的云原生体系建设思考
要做好整个企业的云原生体系建设,需要有个总体的视角,不谋全局者,不足以谋一域.我们将企业的架构进行全方面的梳理,并给出云原生体系建设总图,这个图当然不是一蹴而就就能建设完毕的,而是根据业务需求不断迭代 ...
最新文章
- mysql占用cpu_Mysql占用过高CPU时的优化手段(必看)
- CTFshow 反序列化 web259
- leetcode 1787. 使所有区间的异或结果为零
- flutter网络权限申请
- css3 object-fit详解
- C语言中写一个函数返回参数二进制中 1 的个数
- Centos7下部署ceph 12.2.1 (luminous)集群及RBD使用
- 如何监控主从故障是否正常?MySQL数据库
- Docker入门之安装Tomcat
- 使用USB转485编程电缆连接西门子 S7-200的软件配置方法以及可能出现的问题
- sap 一代增强_SAP 4代增强
- JAVA中this三种方法详解
- RTMP WireShark抓包实例说明
- H3C交换机SSH配置
- matlab 矩阵求和计算
- word刷子刷格式_【Word中格式刷】Word格式刷在哪里?Word格式刷用法大全!
- 广东电信最新DNS更新了
- 使用Senparc.Weixin SDK搭建微信公众号服务程序
- 《江苏省ITS体系框架与规划——需求分析子课题》工作大纲评审会在南京举行[转贴,出处:ITSC 作者:刘浩,张可]
- 苹果电脑与xcode的快捷键
热门文章
- Android Studio 1.0 正式版下载(另附百度网盘链接)
- 【调剂】南京邮电大学自动化学院、人工智能学院2023年硕士研究生(非全调剂)复试录取工作实施细则...
- Hbase实战问题(二)/hbase/WALs/id,端口,xxxxxxxx-splitting is non empty: Directory is not empty
- docker安装部署jdk1.8
- Spring Cloud | 第二篇:服务消费者(Ribbon)
- ElasticSearch 集群配置
- html5 生成图片插件,HTML5 canvas生成图片马赛克特效插件
- Linux中查看进程状态信息
- 中国电信:明年上半年推出2000元以内的5G手机
- react添加键盘事件(react-hook 监听键盘事件)