用户身份标识与账号体系实践

互联网的账号自带备忘机制;

一、业务背景

通常在系统研发的过程中,需要不断适配各种业务场景,扩展服务的领域和能力,一般会将构建的产品矩阵划分出多条业务线,以便更好的管理;

由于各个业务线的数据入口和管理策略的不同,这样从不同路径下沉淀的数据,可能因为系统边界问题从而被孤立;如果用户数据被分裂,会因为数据不全面给分析决策带来误导;

比较经典的场景,用户从应用端完成注册之后,通常不会过多提供自身信息,由于业务需要不断丰富用户画像,所以用户数据通常会被调度到独立的管理系统中,通过不同的触点反馈进行信息扩展,比如采集埋点数据,线下接触,营销电话等;

用户身份标识与账号体系实践

这种情况从操作上是有明显感知的场景,显然用户在应用库中的数据和在管理库是存在很大差异的,在真实的情况中用户可能在不同的应用和场景中会产生重复,必然会导致用户数据难以统一维护;

二、唯一标识

用户的行为数据在当下的互联网产品中,是极其具有分析价值的,不同的应用端不管是否处于登录状态,在产品中产生的数据都是有记录的手段,进而在数据层面分析识别;

用户身份标识与账号体系实践

这些编号最大的特点就是具有唯一性,可以标识用户在不同终端不同状态的操作信息,而当这些数据沉淀到系统时,会根据端口和操作类型进行存储,不同的终端下其数据唯一标识也不相同;

从数据分析的角度上来看,显然不希望用户的行为信息被分裂并且各自孤立,这样对多终端多状态下的用户行为数据进行全域关联,是行之有效的方式,其基本原理涉及到ID的映射技术;

三、Id映射

基于上述的业务情况,在产品矩阵中提供用户身份的全局统一标识至关重要,用户实体在不同业务线所产生的行为数据,通过唯一序列号进行识别,这样进行用户分析时看到的画像比较全面;

用户身份标识与账号体系实践

在当下的互联网产品中,基于手机号创建应用账号的模式已经是常见功能,手机号注册之后,再通过手机号去关联相应的终端ID,从而使各种孤立的数据被链接起来;

其实现的原理并不复杂,首先需要提供一套映射库,当新的手机号被系统识别采集时,在映射库中新建一条数据,手机号和对应的唯一ID,此后其他路径的数据,如果手机号相同则绑定在该ID下面;

四、数据关联

在ID映射机制下,虽然各个业务线数据相对孤立,数据之间不会产生直接影响,但是实际上已经被唯一ID串联起来,这样将ID关联的数据进行综合分析,准确性会提高很多;

用户身份标识与账号体系实践

不管从任何路径或渠道下采集的数据,如果存在手机号的维度,或者手机号相关联的序列号标识,判断该手机号是否存在全局映射ID,没有则在映射库中创建对应关系,如果有则直接绑定即可;

在执行数据的全局调度和分析时,则通过映射库的标准关系,基于ID标识将全部业务线的数据进行查询和统筹分析,从而生成相对全面的数据档案,以及标准的分析逻辑;下面给出一个参考性的结构设计:

用户身份标识与账号体系实践

这里存在数据关联的逻辑,ID标识与手机号都是唯一的且一对一,但是手机号与终端的序列号可能存在一对多,甚至是多对多;账号与应用中产生的行为数据,虽然追求准确性,但是精确度不会过度要求;

这种情况下就需要执行相应的业务策略,比如同一个手机号可能登录过不同手机中的相同应用,手机中的应用也可能被多个账号登录过,此时则需要基于策略做关联上的取舍,可能是账号登录时长,或者登录前后的时段,无法一概而论;

五、注册登录

以手机号作为账号主体为例,开放的应用并不会明显区别注册和登录,以此简化操作避免阻断掉用户,在通过手机号登录时,如果是未注册的用户直接进行信息初始化即可;

用户身份标识与账号体系实践
  • 用户在登录表单中,输入手机号并获取验证码;
  • 在登录服务中,生成并维护验证码的时效;
  • 验证码需要借助对接的第三方短信平台推送到用户手机中;
  • 登录表单填充验证码之后提交登录信息进行验证;
  • 当登录验证成功之后,如果用户未注册则初始化账号体系;
  • 账号体系校验和维护之后,通过异步方式关联ID标识;
  • 最后需要给用户端返回Token身份令牌,作为账号识别;

注册登录集成在一起的复用接口比较复杂,但是以最短的路径让用户快速使用产品,通过行为数据采集分析,从而可以精准识别用户需求,进行正确的引导和营销,发挥出数据的真正价值;

用户身份标识与账号体系实践

这里给出一份账号管理的结构设计参考,通常情况下用户的主表维度会围绕可登录的账号来设计,而涉及到信息采集的数据会写入用户档案表,由于不同业务场景对信息依赖不同,所以在用户注册之后会引导各种数据采集的页面;

用户身份识别和账号作为系统非常基础的核心能力,在设计的时候既要有用户体验,同时要重视数据的安全性;作为核心能力在前期设计的时候就需要一定的前瞻性,做好可能性的规划和结构预留,避免后续的迭代跨度过大。

六、参考源码

编程文档:
https://gitee.com/cicadasmile/butte-java-note

应用仓库:
https://gitee.com/cicadasmile/butte-flyer-parent

Original: https://www.cnblogs.com/cicada-smile/p/16530979.html
Author: 知了一笑
Title: 用户身份标识与账号体系实践

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/610899/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • redis的间隔性速度慢的问题

    php操作redis,偶尔间歇性很慢.查看redis日志发现:Asynchronous AOF fsync is taking too long (disk is busy?). …

    Linux 2023年5月28日
    088
  • 性能压测时 数据库服务器CPU使用率过高的解决方案

    1、确定是否有慢sql语句; 1)登录数据库服务器,连接数据库;执行命令:mysql -uroot -p 密码 2)查看慢sql日志是否开启,执行命令:show variables…

    Linux 2023年6月8日
    090
  • Linux 0.11源码阅读笔记-总览

    Linux 0.11源码阅读笔记-总览 阅读源码的目的 加深对Linux操作系统的了解,了解Linux操作系统基本架构,熟悉进程管理、内存管理等主要模块知识。 通过阅读教复杂的代码…

    Linux 2023年5月27日
    0114
  • 上班摸鱼与网络安全

    上班不摸鱼,那这班上的没有灵魂啊。但是不久前爆出的国美网络监控事件,也提示我们网络有风险,摸鱼需谨慎。 https://baijiahao.baidu.com/s?id=17167…

    Linux 2023年6月13日
    0105
  • 列表初始化

    C++11将列表初始化(大括号初始化)作为一种通用的初始化方式.可用于所有类型. 数组以前就可以用列表初始化,但 C++11 中的列表初始化新增了一些功能: 初始化数组时,可省略等…

    Linux 2023年6月13日
    081
  • 跨平台(32bit和64bit)的 printf 格式符 %lld 输出64位的解决方式

    在 C/C++ 开发中,使用 printf 打印 64 位变量比较常用,通常在 32 位系统中使用 %lld 输出 64 位的变量,而在 64 位系统中则使用 %ld; 如果在 3…

    Linux 2023年6月7日
    095
  • Linux 配置Maven(避免踩坑篇)

    前言:请各大网友尊重本人原创知识分享,谨记本人博客: 南国以南i 二、下载好的maven安装包放在磁盘的 /usr/local/ 目录下,如下图: 三、解压该压缩文件 tar -z…

    Linux 2023年6月14日
    0104
  • Java基础系列–07_Object类的学习及源码分析

    Java中Object根类及其底层的学习 Object: 超类(1)Object是类层次结构的顶层类,是所有类的 根类,超类。所有的类都直接或者间接的继承自Object类。所有对象…

    Linux 2023年6月7日
    084
  • Centos7.9、Ubuntu操作系统图文安装

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 一、环境准备 1、镜像包 CentOS-7.9-x86_64-DVD-2009.isoubuntu-18.04.6-server…

    Linux 2023年5月27日
    091
  • .htaccess文件解析漏洞

    前言 htaccess文件(或者”分布式配置文件”),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的…

    Linux 2023年6月13日
    079
  • 一键部署服务(shell)

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/Willoneday/p/16534113.htmlAu…

    Linux 2023年6月7日
    093
  • hexo 升级5.4.0出现错误解决方法-hexo-theme-butterfly

    本篇文章已同步个人博客,可移步食用。hexo 升级 5.4.0 出现错误解决方法 -hexo-theme-butterfly 周末升级了下 hexo 到新版本,发现升级后,构建时出…

    Linux 2023年6月7日
    0106
  • 操作系统实战45讲笔记- 05 CPU工作模式:程序执行的三种模式

    实模式 实模式又称实地址模式,实,即真实,这个真实分为两个方面,一个方面是运行真实的指令,对指令的动作不作区分,直接执行指令的真实功能,另一方面是发往内存的地址是真实的,对任何地址…

    Linux 2023年6月7日
    084
  • opencv

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月14日
    0112
  • Linux IP 命令略解

    help 为该命令的帮助信息。 实例ip link show # 显示网络接口信息 ip link set eth0 up # 开启网卡 ip link set eth0 down…

    Linux 2023年5月27日
    0155
  • NC反弹shell的几种方法

    nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口 (2)端口的扫描,nc可以作为client发起TCP或UDP连接 (3…

    Linux 2023年6月14日
    091
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球