V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hi20151215x
V2EX  ›  问与答

求一个思路 小程序登陆 token 的问题

  •  
  •   hi20151215x · 2022-12-16 18:26:57 +08:00 · 938 次点击
    这是一个创建于 734 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小程序用户发起登陆请求后,会在 redis 中以 token 为 KEY , 用户信息为 VALUE 进行存储。

    现在发现个问题,如果用户恶意调用登陆接口,就会在 redis 中生成大量 token ,并且有着相同的 VALUE 。

    想问下各位老师,有没有什么方法避免这种情况?

    谢谢 :)

    4 条回复    2022-12-19 18:24:35 +08:00
    Rache1
        1
    Rache1  
       2022-12-16 18:32:15 +08:00
    token 只存 id ,把用户信息另外存,用 id 去获取信息。

    你也可以用个 list 把登录用户的 token 存起来,这样就知道用户有哪些 Token 了,还可以在他登录时检查清理掉过期的 Token 。

    login:<用户 ID>{token, token2, token3}
    3K1yf6UvnVz5w008
        2
    3K1yf6UvnVz5w008  
       2022-12-16 18:42:20 +08:00
    用户请求后,通过 token 获取到用户 id
    再查 redis 有没有相同 id 的数据,有就 del
    lianyue
        3
    lianyue  
       2022-12-16 20:35:09 +08:00
    key = username
    value = token
    换成这样就好了呗
    每次管他对不对写入就行了
    SJH0402
        4
    SJH0402  
       2022-12-19 18:24:35 +08:00
    @lianyue 求教,假如用户可以通过手机号,邮箱,用户名任意一种方式登录,那么 redis 中要存储对应的三份数据吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4019 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 04:10 · PVG 12:10 · LAX 20:10 · JFK 23:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.