有的网站两个登录框,第一个可以填写账户名 /邮箱 /手机号,第二个填写密码
那如果有一个账户的手机号跟另一个账户的名称一样,登录得怎么处理,注册的时候直接限制用户名长度么
1
zhuzhibin 2020-11-30 01:12:26 +08:00 via iPhone
很多种做法吧 通常用户名应该是数字字母符合什么的组合
|
2
1if5ty3 2020-11-30 01:22:29 +08:00 via iPhone
限制用户名不能用纯数字呗
|
3
thedrwu 2020-11-30 05:51:56 +08:00
楼主这头像
|
4
xuanbg 2020-11-30 07:45:35 +08:00
注册的时候判断数据库里面有没有用户名 /手机号 /邮箱等等任何可以用来登录的字段是否存在。
|
5
baobao1270 2020-11-30 08:48:00 +08:00 1
这个问题是存在的……我百度的用户名就是一个已经销卡的手机号,每次登录百度都会被认为是手机号,提示手机号不存在。最后这能申诉+绑定邮箱,用邮箱登录。
注册的时候可以不允许使用 11 位数字注册。 @xuanbg #4 的方法,没有考虑到用户更换手机号的情况。 |
6
zmQAQ 2020-11-30 09:06:53 +08:00
注册时候查询验证数据库是否有相同字段,登陆的时候直接查询你的账户就 OK 了
|
8
cmdOptionKana 2020-11-30 09:58:31 +08:00 via Android
这个设计有根本性问题,其实如果允许邮箱和手机号在同一栏自由填写,就不应该允许账户名在同一栏自由填写。
先让填邮箱或手机,自动生成一个随机用户名,后续允许用户改名就可以了,注册过程照样简洁,用户名也照样可以自定义。 |
9
shaozelin030405 2020-11-30 09:59:53 +08:00
禁止拿手机号做用户名,解决
|
10
xuanbg 2020-11-30 10:01:01 +08:00
@baobao1270 你悄悄更换手机号直接登录(登录注册合一的情况),而不是登录以前的号进行更换手机号操作。这个问题无解的呀。
|
11
yaphets666 2020-11-30 10:02:21 +08:00
我觉得不管是拿什么作为账户名 账户名在不同种类的间都应该是唯一的
|
12
cmdOptionKana 2020-11-30 10:03:33 +08:00 via Android
注册时先给随机用户名,修改用户名时不允许是纯数字或有 @ ,后续登录的时候就不可能重复
|
13
no1xsyzy 2020-11-30 10:08:37 +08:00
@xuanbg 想象一下,假定存在一个手机号 X{11}
首先,1. 有人注册了账号 Y ; 2. 有人注册了账号 X{11}; 3. Y 绑定了手机号 X{11} 这个过程中,只有 3. 的位置能够判断,但你要不允许 Y 绑定?还是 Y 绑定完成后也不允许手机号? 最核心的方案还是除了通用框以外,可以明确指定我输入的是(手机号 / 邮箱 / 账号) 就算采用比较隐蔽的比如 tel::X{11} mail::[email protected] account::X{11} 的区分也行。 |
14
lixiaolin 2020-11-30 10:31:35 +08:00
限制用户名不能跟手机号格式一样吧
|
15
takemeaway 2020-11-30 10:48:02 +08:00
@no1xsyzy 一般是手机号优先,如果同时存在手机号和用户名一样但是账号不同的情况,账号那个是登录不上的,需要用邮箱登录,然后绑定其他手机号。
所以存在 5L 的情况。 |
16
nnnToTnnn 2020-11-30 11:32:30 +08:00
@baobao1270
@takemeaway 注销的逻辑难道不应该是这样的吗? 请输入你要注销的用户 用户名: xxxxxx 密码: xxxxxxx 请输入手机验证码 or 邮箱验证码 通过用户名 + 密码 可以拿到用户 id 在通过用户 id 来注销用户 |
19
ggbdpq 2020-11-30 12:09:26 +08:00
"一个账户的手机号跟另一个账户的名称一样"你让别人登录注册的时候就不应该存在这个问题,用户名不都是唯一的。吗?
|
21
iptables 2020-11-30 12:35:38 +08:00
禁止纯数字用户名(防止和手机号冲突),禁止含有 @ 的用户名(防止和邮箱地址冲突)
|
22
iptables 2020-11-30 12:36:47 +08:00
或者不让用户指定用户名,而是分配一个唯一的 ID
|
23
xuanbg 2020-11-30 13:34:53 +08:00
@no1xsyzy 注册 /绑定手机号这一步是有短信验证的,Y 常规手段绑定 X 是不会成功的。问题一般是先注册了 Y,但没有绑定手机号,然后用手机号验证码登录,就变成了两个账号。还有就是用手机号 X 作用户名注册了账号,并绑定了手机号 X,然后绑定的手机号换成了 Y 。这时候用户名还是 X,别人用手机号 X 登录就出问题了。
还有就是我用一个手机号 X 注册了,然后这个手机号我注销掉了,被运营商回收后你购买了这个手机号 X 使用。当你去注册的时候就注册不上了,系统会提示你用户已存在。然后你使用找回密码功能登录了我的账号,并据为己有。 |