V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ViaSil
V2EX  ›  程序员

求助:网站登录模块,如何处理美国/加拿大用户和国内手机号重合的问题?

  •  
  •   ViaSil · 2019-01-03 19:03:22 +08:00 · 2802 次点击
    这是一个创建于 2149 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是这样的: 1.美国 /加拿大用户的手机号区号是 1,加上后面 10 位数字,就是 11 位; 2.国内手机号也是 11 位,且我们网站存国内的手机号没有加+86,国内用户手机号登录也不习惯手动加 86 ; 所以国内外手机号可能会重合,导致用户登录失败;

    在前台账号输入框增加区号下拉框提示用户选择区号,后台国内数据存号码+86,想过,但是前台这个样式很不常见,大部分网站因为有一个账号输入框里手机号+邮箱合并登录的情况,所以没有前台登录加区号下拉框的样式。我目前也是两种登录方式并行……

    想问问 V2 的大佬,有没有遇到过这种问题的(国内外手机号重合),最后是怎么解决的呢?

    先谢谢啦!!!

    第 1 条附言  ·  2019-01-07 11:47:06 +08:00
    特别感谢各位热心大佬的建议,后来跟开发小哥聊了在 V2 上各位的想法,综合我们网站的情况、用户登录习惯,以及其它网站参考等,最后还是决定从前台单独给国外用户一个登录的口子,这样开发逻辑也不复杂,用户登录逻辑也不复杂,还能包容我们网站好几个登录样式,感谢感谢!!(=゚ω゚)ノ
    19 条回复    2019-01-07 11:42:07 +08:00
    lihongjie0209
        1
    lihongjie0209  
       2019-01-03 19:11:10 +08:00
    页面上可以有切换区域按钮啊, 点击之后你就不知道现在的区号了吗
    janxin
        2
    janxin  
       2019-01-03 19:16:04 +08:00
    +1
    +86

    Canda
    US
    中国

    根据系统语言自动默认选择一下地区
    dremy
        3
    dremy  
       2019-01-03 19:26:36 +08:00 via iPhone
    既然都说了手机号可以和邮箱合并登录,那么手机号也可以和手机号合并登录呀(逃
    s609926202
        4
    s609926202  
       2019-01-03 19:31:15 +08:00 via iPhone
    Telegram 登陆的时候不是得选择区号吗!可以参考吧
    C2G
        5
    C2G  
       2019-01-03 19:34:03 +08:00 via Android
    让用户自己加“+”不就好了么
    hxtheone
        6
    hxtheone  
       2019-01-03 20:22:50 +08:00
    注册页和登录页带国际区号选择框不就行了
    honeycomb
        7
    honeycomb  
       2019-01-03 20:43:12 +08:00 via Android
    常见的的做法是这样:

    默认的输入框强制认为是内地手机号,如果要港澳台或国外手机号,则必须多点一步。

    你们存的国内手机号的表可以加一个字段,取出的时候还可以再加个判断是不是“+86 ”开头的(如果同时存在仅手机号与+86 连着手机号的情况)
    dumbunny
        8
    dumbunny  
       2019-01-03 21:30:42 +08:00 via Android
    楼上正解
    CodeWind
        9
    CodeWind  
       2019-01-03 21:35:56 +08:00 via Android
    没做过类似,不过我有一个想法,可以判断用户登录地址,判断国内的则自动选择为+86,其他的国家为对应的,不知道能不能实现
    mosliu
        10
    mosliu  
       2019-01-04 09:25:29 +08:00
    通过 IP 判断地区 自动帮忙选择+1 不就好了 默认+86
    lixikei
        11
    lixikei  
       2019-01-04 10:20:05 +08:00
    @CodeWind @mosliu +86 的用户跑去了 Canada、US 登陆呢?
    kwklover
        12
    kwklover  
       2019-01-04 11:01:19 +08:00
    通过数据分析重复率,目测重复率应该不高,没有必要为了解决小部分用户的问题,导致大多数用户改变习惯和增加麻烦,解决方案:
    1,保持现状,大部分用户都无需改变习惯;
    2,登陆时,如判断有重复,要求用户选择注册地区,然后进一步判断账号密码是否匹配;
    tosmq009
        13
    tosmq009  
       2019-01-04 11:04:39 +08:00
    看看各大 BATJ,等等的注册,或者看看 阿里巴巴海外站,他们的前台设计,没啥好纠结的,他们都有现成的解决方案。
    CodeWind
        14
    CodeWind  
       2019-01-04 11:13:23 +08:00 via Android
    @lixikei 如果不对,可以手动选择
    ViaSil
        15
    ViaSil  
    OP
       2019-01-04 11:20:42 +08:00
    @lihongjie0209 谢谢~不过增加一个选择地区的按钮,会增加登录的使用成本,所以还是在想能不能从底层数据去解决;
    @janxin 谢谢~不过系统语言使用英语的肯定不止加拿大&美国,这样给国外用户默认区号的不准确率可能会比较大;
    @dremy 嗯?
    @s609926202 谢谢~ telegram 的 Web 版好像没有手机号登录呢。。
    @C2G 谢谢~之前就是这么做的,但是国内用户登录肯定不会手动+86,国外用户必须手动加区号登录,就导致手机号重复了……
    @hxtheone 谢谢~嗯,注册还好说,登录的话要是带了区号选择框,就不能在一个框里实现邮箱账号输入了;
    @honeycomb 谢谢^^所以常见的方案是把非内地手机号用户摘出来,另放一个入口么;第二条在国内手机号加字段了之后,应该就不会在数据库里发生重复了;
    @CodeWind @mosliu 谢谢^^这个也想过,但是我们 Web 的登录入口至少有 5 个……而且又有弹窗又有页面样式都不一样,很难通过用户某个特定的操作去加入 IP 判断……

    谢谢各位^^

    目前通过各位热心大佬的方案,总结出 2 个可参考的方案:
    1.摘出非内地手机号用户,另提供一个登录入口;
    2.通过 IP 判断,非内地用户默认展示手机号下拉框样式,内地用户默认展示 [邮箱+手机号] 合并登录样式;

    因为我们这是个老 Web 了,登录入口啊流程啊的框架都比较杂,虽然希望尽量能做到一个方案能复用所有登录入口,改动成本不大,用户体验又流畅,但……嗯,会考虑一下具体可行性的,谢谢啦^^
    ViaSil
        16
    ViaSil  
    OP
       2019-01-04 11:27:07 +08:00
    @kwklover 谢谢^^ 1.这个确实是极少数的情况,感谢提醒! 2.登录时排重,确实没想过,这个我跟开发小哥沟通一下看看,再次感谢!!非常实用的建议^^
    mosliu
        17
    mosliu  
       2019-01-04 13:10:55 +08:00
    @lixikei
    1.出国的自己选一下呗。
    2.前端可以留 cookie 的啊
    @ViaSil
    不愿改的话,后端多匹配一次就是啦。先按无区号匹配,再按有区号试错一下。 登录操作除非被打,这里多一次判断,资源耗费不了多少吧。
    C2G
        18
    C2G  
       2019-01-04 13:24:35 +08:00 via Android
    @ViaSil 国内不输“+”国外输入“+”,根据是否有加号判断是否为国内
    输入框可以标注提示,非大陆用户需要加国家区号,大陆用户不用
    ViaSil
        19
    ViaSil  
    OP
       2019-01-07 11:42:07 +08:00
    @mosliu @C2G 谢谢谢谢!暂时还是选择从前台单开一个国外用户登录的入口,原有用户的登录逻辑不变,特别感谢建议( ´▽` )ノ
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5685 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 02:37 · PVG 10:37 · LAX 18:37 · JFK 21:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.