其实我主要是想知道美团这些app,登录页里一个输入框能输入手机号和用户名,是如何判断用户输入是的手机号还是用户名?
如果 用户1 用 手机号A 通过手机号注册了一个账号。然后修改用户名为 手机号B 。 但是 手机号B 是 用户2 的手机号,然后 用户2 用 手机号B 通过手机号也注册了一个账号。
用户1
手机号A
手机号B
用户2
假设他们两个都用了相同的密码,那如何让 用户1 在登录页面输入 手机号B 时不能登录 用户2 的账号?
java Android ios
首页可以确定,你所述的这种情况是极少情况下出现的。
你要知道手机、邮箱、用户名之间的区别
1.手机号:纯数字; 2. 邮箱 :带@符号 3. 用户名:一般不会是纯数字(字母+数字或+符号之类的)
那么问题就出来了,登录名一般是不允许重复使用的(这在客户端和服务端都是有校验的) 我们需要做的其实就是在判断用户输入的是哪一种类型的用户名就可以了。
现在一般注册用户都是不能使用纯数字来注册的,基本都会要求首字符为字母或者用邮箱账号来注册. 这样的话就不存在问题了啊,就可以用正则表达式来匹配这是一个邮箱或者是一个手机号又或者是一个自己注册的用户名.
我目前做的 是 用户名不能全是数字 手机号码是数字 邮箱一般有@符号
1.美团的注册是 不能以数字开头 的。所以这点就可以判断是手机号还是用户名 2.用户名和邮箱区别 。可以判断是否有@符号
前端就可以进行判断。如果判断是纯input是纯数字就传给后台type=1 代表去使用手机号登录。剩下2种情况依次...
更改用户名的时候,前台客户端不允许 纯数字或者邮箱的格式出现就行。 就像你更改手机或者邮箱,肯定也会去进行验证格式是否正确。
所以说 用户名不能是手机号格式。。。
如果允许是手机号格式,那么在修改用户名的时候 也需要在用户名、手机号、邮箱里面进行唯一性检查
个人观点:客户端需要做的 就是一个电话号码的正则表达式过滤就行,剩下的就是服务器那边的事儿了
如果用户1用手机号A通过手机号注册了一个账号。然后修改用户名为手机号B。 但是手机号B是用户2的手机号,然后用户2用手机号B通过手机号也注册了一个账号。
通常来说用户名是绝对不允许使用全数字的, 尤其是在这种可以手机号码登陆的情况下 你就算是允许数字用户名,在修改用户名/手机号码注册的时候,也需要判断是否会出现重复的问题!!!
一般的用户名,是不允许全数字类型的
即使是允许全数字类型,除非密码是一样的,否则依然可以判定是谁。
对于前端的工作来说,大部分是建立 联合正则 来判定是否是符合 手机 | 用户名规则 | 邮箱规则
联合正则
手机
用户名规则
邮箱规则
后台工程师来说,可以判定传来的 类型 ,如你说的情况,使用两种类型,得到数组是两个用户,然后匹配密码,正确的则为登录用户
类型
网站与客户端(Android、IOS)之间的数据交换、传输相关问题
用java编写app的服务器端,需要用到什么技术和框架?
是否可以在微信web浏览器中点击链接打开用户手机中已安装的app
关于ios和安卓app使用流畅性的思考,撇去系统架构,是因为app选择的语言问题吗?
php openssl生成的rsa密钥给android和ios使用注意哪些问题?
android 调用系统录音机并能返回含所录音频的