架构设计-多账号统一登录

本文探讨了从自建手机号+验证码登录到引入第三方如微博、QQ登录,再到优化账号体系和实现一键登录的过程,强调了账号表设计在多账号统一登录中的重要性,并介绍了阿里云提供的本机号码认证解决方案以提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统设计

现在几乎大部分的 App 都支持使用多个第三方账号进行登录,如:微信、QQ、微博等,把此称为多账号统一登陆。而这些账号的表设计,流程设计至关重要,不然后续扩展性贼差。

这里不提供任何代码实操,这里梳理一下账号模块的设计,提供思路,仅供参考。

一、 自建的登陆体系

1.1 系统最初的登录设计

1.1.1 手机号登陆注册

该设计的思路是每个手机号对应一个用户,手机号为必填项。

流程:

  1. 首先输入手机号,然后发送到服务端。先判断该手机号是否存在账号,如果没有,就会生成随机验证码,将手机号和验证码绑定到 Redis中,并设置一定的过期时间(过期时间一般是5分钟,这就是一般手机验证码的有效期),最后将验证码通过短信发送给用户。
  2. 用户接收到验证码后,在界面填写验证码以及密码等基础信息,然后将这些数据发送服务端。服务端收到后,先判断在 Redis里面这个手机号对应的验证码是否一致,失败就返回错误码,成功就给用户创建一个账号和保存密码。
  3. 注册成功后,用户即可通过自己的 手机号+密码进行登陆。

问题:

  1. 用户体验差,需要完成获取验证码,填写验证码/密码/用户名等诸多的信息完成注册,然后才能使用;
  2. 容易遗忘密码,遗忘后,只能通过忘记密码来重新设置密码。
1.1.2 优化注册登陆

该方案的思路是弱化密码的必填性,即无论用户是否注册过,可通过 手机号+验证码 直接进行登陆(保留 手机号+密码登录的方式)。

流程:

  1. 输入手机号,然后发送到服务端。服务端生成随机验证码,将手机号和验证码绑定到 Redis中,并设置一定的过期时间(过期时间一般是5分钟,这就是一般手机验证码的有效期),最后将验证码通过短信发送给用户。
  2. 用户接收到验证码后,在界面只需填写收到的验证码,提交到服务端。服务端收到后,先判断在 Redis里面这个手机号对应的验证码是否一致,失败就返回错误码,成功就直接登录。如果是老用户,直接拉取用户信息;如果是新用户,则提示他可以完善用户信息(不强制)。
  3. 用户通过 手机号+验证码登录后,也可选择设置密码,然后就可以通过 手机号+密码的方式登录,即:密码是非必填项。

用户表设计:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeBe@r

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值