29 4 月, 2026

黑龙江省娇馨化妆品有限公司

门户网站登陆通道的演变与实践

一、门户网站登录的发展历程

  1. 创立初期

创业初期,用户密度较小,还未接入第三方账户系统,只需自建体系即可满足需求。常见的自建体系有:

  1. 用户名密码注册登录:在创业初期的网站建设中较为常见,先注册再登录。在老一点的cms中都能找到这种方式的影子。

流程说明:前端将用户名、密码发送到服务器,服务器进行常规判别,如用户名、密码长度是否满足要求,用户名是否重复等条件。若条件不满足,则直接返回错误码给到前端;密码字段为防止传输过程被截胡,建议加密再上传,传输密码默认都是进行MD5加密,然后记录到数据库并再次加密,即使脱库也不会泄露。

校验通过后,将用户名密码写入数据库,并进行后续积分发放等操作。

现在进行登录,前端将用户名、密码发送给服务端。服务端首先会判别登录次数是否超过设置的阈值,超过阈值则只能继续等待被关小黑屋。

如果未超过阈值的登录逻辑,则判别用户名、密码是否正确,若不正确则进行阈值判断,超过则关小黑屋,小黑屋必须设置过期时间,以免永久关闭。登录成功后进行后续一切后置逻辑。

  1. 手机号注册登录

流程图:流程说明:首先输入手机号,然后发送到服务端,服务端将手机号记录在我们数据库中,生成随机验证码,并绑定到redis里,记录过期时间(一般1分钟)。手机接收到短信后,在界面填写验证码发送给服务端,服务端收到验证码后会查询redis中的手机号对应的验证码,若失败则返回错误码。成功后进行登录操作。

  1. 引入第三方账户方案

引入第三方账户方案,以QQ-SDK的登录逻辑为例。客户端发起登录界面,输入用户名、密码(第三方的用户名、密码),登录成功后会返回access_token、openid、expire_in等数据。这过程会使用到oath协议。

客户端获取access_token、openid后请求应用服务器,应用服务器根据对应的login_type去用户中心进行校验。

二、数据库设计

  1. 表结构设计
  • 用户基础表(sers):字段包括ser_id用户id、token用户登录的token、expire_intoken过期时间、try_times登录失败次数等。
  • 用户验证关联表(ser_ath_rel):字段包括id自增id、ser_id用户id、ath_id验证表id、ath_type验证类型(local、third)本地用户表、ser_local_ath:字段包括ath_id认证id、ser_name用户唯一标识、password用户密码、mobile用户手机号等。
  • 第三方用户表(ser_third_ath):字段包括ath_id用户id、openid第三方用户唯一标识、login_type第三方平台标识(qq、wechat…etc)、access_token第三方获取的access_token等。

三、总结

总的来说,第三方用户的接入在技术上较为简单。新增一个ser_thirds支持足够多的第三方接入,一般我们也就两三个登录就好,太多登录方不仅维护成本高,界面摆放也不美观。

希望大家通过以上学习,对我国门户网站登陆通道的发展有一个清晰的认识。这里的设计方案不包含分表分库、没有服务化,就是简单的直接的设计。当然用户量和需要的不一样,在此基础上还需添加很多东西,谢谢大家阅读!

Share: Facebook Twitter Linkedin

Comments are closed.