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

请教一个 Flask session 的问题

  •  
  •   coolair · 2018-04-26 23:35:35 +08:00 · 1377 次点击
    这是一个创建于 2163 天前的主题,其中的信息可能已经有所发展或是发生改变。
    get_code_api ( POST ):获取验证码的 API,可以分别获取手机或邮箱验证码,并设置手机验证码和邮箱验证码的 session 用于验证。

    问题描述:
    注册的时候,通过 ajax 获取手机验证码和邮箱验证码,如果单用手机或邮箱注册,用 session 的方式验证验证码没有问题。
    但是如果同时使用了手机和邮箱,那么就分别调用了两次 get_code_api,这个时候在 submit 提交对验证码进行校对的时候,发现 session 保存的邮箱的验证码是老的验证码,也就是在调用 get_code_api 的时候并没有更新成功。

    疑问:
    为什么手机验证码的 session 没有问题?
    在 get_code_api 设置邮箱验证码 session 的时候,分别打印了更新前和更新后的 session,发现没有问题,但是 submit 验证的时候仍旧是更新前的老 session,这是为啥?

    是不是该用 Flask-session 来使用服务器端保存 session,但是我觉得不是这个问题啊。
    第 1 条附言  ·  2018-04-27 08:59:44 +08:00
    用了 flask-session 和 flask-cors 还是不行,测试后发现,一次 ajax 设置两个值没有问题,但是两次 ajax,第二次 ajax 设置的值就会失效。
    第 2 条附言  ·  2018-04-27 12:43:48 +08:00
    这个问题我已经解决了,原因就是两次 ajax 请求时间太短,加个延迟就没有问题。
    4 条回复    2018-04-27 12:12:49 +08:00
    rogwan
        1
    rogwan  
       2018-04-26 23:45:12 +08:00 via Android
    你是不是把验证码都用同一个 key 存入的 session ?
    coolair
        2
    coolair  
    OP
       2018-04-26 23:53:45 +08:00
    @rogwan key 不一样
    gotounix
        3
    gotounix  
       2018-04-27 00:15:34 +08:00   ❤️ 1
    John60676
        4
    John60676  
       2018-04-27 12:12:49 +08:00
    上代码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1743 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:37 · PVG 00:37 · LAX 09:37 · JFK 12:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.