首页 > 编程语言 >【不靠谱程序员】登录页,用户输了短信验证码却提示:用户不存在

【不靠谱程序员】登录页,用户输了短信验证码却提示:用户不存在

时间:2023-11-24 11:13:43浏览次数:36  
标签:手机号 登录 校验 用户 程序员 验证码

【preface】用户输入手机号获取验证码时,是先校验手机号是否存在,还是先发验证码?靠谱的程序员一定有答案。

 

 

用户在我们小程序端用短验(手机短信验证码)的方式登录。登录的逻辑实现,我用下面的时序图表示给你看。

 

 

结果呢,领导review后,说在页面请求后端API获取手机验证码的时候,应该先校验手机号在系统是否存在,存在才给手机号发送验证码短信,不存在则直接给出友好提示,中止登录。

 

我按我上面流程图这样子实现,在校验用户输入的短信验证码通过后再判断用户是否存在,不也可以吗?有啥问题?

 

 

你可能会认为“这领导嘛也不懂,就知道瞎BB”。不过呢,如果沉下心思琢磨一下的话,也并非如此。——将“校验用户是否存在”进行前置在获取登陆验证码这个环节,有什么好处呢?

 

当然是有的。

 

首先,在用户试图获取登录验证码时,我们系统发现这个手机号在我们系统不存在,那证明不是我们系统的用户,这时,直接给出友好提示。这对用户来说是好事,很可能用户发现是自己输入了错误的手机号。否则,你在用户输入了收到的手机验证码后,提示用户不存在,对于缺乏耐心的用户来说,他们也许会骂N啊。

 

再者,从技术层面考虑,这也拦住了非法的请求,不失是一个很好的技术手段。试想,你的程序收到获取验证码的请求,就给请求的手机号发送验证码,那这样的接口,显然是个肉鸡啊,这就给好奇人士或不法人士带来可乘之机(损人不利己?人家就为了爽一把)。

 

 

以上来自“靠谱的程序员”之系列:不靠谱程序员。旨在通过日常开发中一些中的反例,来希望在大家日常开发中给到一些启示。感谢阅读!

 

 

 

本文设计图物料素材:https://www.processon.com/view/link/611e4236e0b34d3511f7d9c2

本文摘自公众号“靠谱的程序员”,欢迎关注关流,批评指正:https://mp.weixin.qq.com/s/G9GQwuh7VXZd-P_iNWszlg

标签:手机号,登录,校验,用户,程序员,验证码
From: https://www.cnblogs.com/buguge/p/17853296.html

相关文章

  • 用户操作
     创建用户及密码:postgres=#createusertestwithpassword'test';CREATEROLE##删除用户:dropusertest;DROPROLE \du 查看建立好的用户 ##普通用户登陆不上,需要设置pg_hba.confpostgres=#exit-bash-4.2$psql-Utestpsql:error:connectiontoserveronsoc......
  • Linux用户管理
    学习Linux用户管理章节中,我深刻认识到了用户管理在Linux系统中的重要性。Linux系统是一个多用户、多任务的操作系统,每个用户都有自己的账户和权限。因此,对于Linux系统管理员来说,用户管理是必须要掌握的技能之一。在这个章节中,我学习了如何创建、删除、修改和管理用户账户,以......
  • 印度程序员指针部分部分代码
    #include"stdio.h"intmain(){ intx=5; int*p=&x; *p=6;//可以不改变x的值来修改输出 int*(*q)=&p;//即p=*q int*(*(*r))=&q;//即r=*p printf("%d\n",*p); printf("%d\n",*q); printf("%d\n",**q);//即*p pr......
  • Soul CEO张璐创新用户共治众裁模式,打造良好内容生态
    随着互联网科技的发展,线上社交成为人们社交生活的重要形式,被称为“互联网原住民”的Z世代更是社交App的主要用户群体。据相关数据统计,Z世代用户社交活跃占比高达83.6%,而中国近70%的Z世代用户倾向于线上社交。在互联网科技的支撑下,线上社交不断升级迭代,追求沉浸式和即时性,注......
  • 刘金玉QT学习笔记:7-简易用户信息管理界面实现_实现用户信息增改
    1.同第六课方式在widget里连接并创建数据库。 2.通过QSqlQuery使用sql语句的第二种方法:-在不同的函数中都要使用->做成全局变量 3.表格网格控件tableview控件显示数据库的内容为表格行-ui拖出控件-qtableview控件通过QSqlQueryModel来渲染数据过程:1widget.h引入#i......
  • Linux用户管理
    1用户/组用户类型 超级用户(root):超级用户是系统的管理员,拥有对系统的完全控制权限。他们可以执行任何操作,包括修改系统文件和安装软件。系统用户:系统用户是为了运行系统服务或进程而创建的用户,通常没有登录系统的权限。这些用户用于运行系统中的各种服务,例如Web服务器或数据......
  • Linux用户和用户,组的管理心得
    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提......
  • ABP-VNext 用户权限管理系统实战02---用户权限表的创建与迁移
    一、表实体建立1、菜单表[Comment("菜单表")][Table("t_identity_menu")]publicclassMenu:AuditedAggregateRoot<Guid>,ISoftDelete,IMultiTenant{[MaxLength(200)][Comment("菜单名")]publicstringName{get;set;......
  • 2024年面向Java程序员的20个系统和软件设计面试题
    0前言系统设计问题是编程面试的重要组成部分,如果你想取得好成绩,就必须准备。在我的网站,分享了八股面试题时,也分享了一些系统设计问题,但粉丝们一直在要求更多问题,因为这个主题的确很难掌握,需要更多练习。我自己也收集了一些从朋友和同事那里获得的面试题,但为了这篇文章和自己的准......
  • 程序员指南|学会与大模型相处,提升个人开发效率
    过去一年,通过各种平台我们可以轻而易举的接收到人们关于使用大模型遇到诸多问题的声音。然而,显而易见的是,大模型可以在许多方面提高我们的效率,尤其是在处理文档、测试用例和代码等繁琐事务方面。大模型的优势和短板是什么?首先,我们需要了解大模型的概念。由于训练数据和参数等多种......