thinkif
V2EX  ›  问与答

在做一个手机应用,请问如下方式进行用户身份验证是否合理。

  •  
  •   thinkif · Apr 7, 2015 · 2218 views
    This topic created in 4102 days ago, the information mentioned may be changed or developed.
    用户登录进来后系统生成一个Token并返回给客户端,以后客户端所有查询均发送由『用户名+设备ID+Token+时间戳』取经过哈希计算的结果,同时传给服务器用户名和时间戳。

    服务器根据用户名查询到用户的设备ID和Token,用传递过来的时间戳做同样的运算,如果结果相同则认为验证通过。

    时间戳给个有效期如果超过有效期则直接拒绝。

    本应用要求用户绑定手机,所以设备ID绑定后不变。

    请问这个思路是否合理。
    9 replies    2015-04-08 20:52:46 +08:00
    virusdefender
        1
    virusdefender  
       Apr 7, 2015
    没问题吧
    honeycomb
        2
    honeycomb  
       Apr 7, 2015
    怎么都想拿设备ID呢,这个东西给伪造值呢?
    thinkif
        3
    thinkif  
    OP
       Apr 7, 2015 via iPhone
    @honeycomb
    有什么别的办法绑定设备么?
    另外是个内部应用,绑定设备是为了便于管理
    honeycomb
        4
    honeycomb  
       Apr 7, 2015   ❤️ 1
    @thinkif

    苹果就拿不到直接的设备ID
    虽然可以随机生成一个丢keychain,但恢复出厂后也会消失
    thinkif
        5
    thinkif  
    OP
       Apr 7, 2015 via iPhone
    @honeycomb
    那没事,后台有授权管理,接触绑定就可以了。

    现在就是想论证一下身份验证是否有不妥的地方
    honeycomb
        6
    honeycomb  
       Apr 8, 2015
    @thinkif 拿设备串号就是不妥呀
    thinkif
        7
    thinkif  
    OP
       Apr 8, 2015
    @honeycomb
    已感谢,给你回回血 :)

    重点不是设备ID,或者说我不用设备ID,也不验证设备唯一性,光说这个校验的思路是否有问题,有没有其他更好的方式。

    之前在网上找了很多,大概都是差不多的方式:登录获取Token,本地计算出Sign,可能算法会略有不同,服务器校验Sign并考虑过期时间。

    在这发帖子就是想问这样是否合理,是否有更好的方法值得尝试。
    honeycomb
        8
    honeycomb  
       Apr 8, 2015
    @thinkif

    抱歉我说的偏激

    应该更正一下:
    以广告、营销的用户追踪为目的情况下不应记录可永久/半永久唯一识别设备的信息

    拿Android来说
    IMEI/MEID
    MAC
    Android ID
    都不能获取

    不能跨应用共享同一家用户追踪方案提供者的数据
    thinkif
        9
    thinkif  
    OP
       Apr 8, 2015
    @honeycomb
    你想的复杂了,如同我在三楼回复时提到的,这是个内部应用。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3406 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 11:52 · PVG 19:52 · LAX 04:52 · JFK 07:52
    ♥ Do have faith in what you're doing.