php - 队列异步执行的时候是无法使用SESSION的,那么登录还能使用队列吗?
怪我咯
怪我咯 2017-05-16 13:05:36
0
1
352

队列异步执行的时候是无法使用SESSION的,那么登录还能使用队列吗?如果能如何处理cookie和session的对应关系?

怪我咯
怪我咯

走同样的路,发现不同的人生

Antworte allen(1)
刘奇

录还能使用队列吗?

登录通常是个同步过程,用队列不是不行,只是会增加复杂性。

同步的登录过程就是读数据库,判断账号密码正确,设置session,能在一个HTTP请求里搞完。

换成异步,我只能想到下面这种方法:

  1. 客户端生成随机token

  2. 客户端把token、账号、密码发给服务器

  3. 服务器在redis中记录这个token还没登录成功

  4. 服务器把把token、账号、密码放到队列处理

  5. 队列处理,如果账号正确,redis中的token标记为成功,否则标记为失败

  6. 客户端在服务器和队列处理的过程中一直用另一个接口轮询看token是否登录成功,成功的话以后的请求都带上token,否则客户端登录失败。

所以应该尽快完成同步的登录过程,把登录后需要的一些操作(发邮件通知等等)放队列,而不是把整个登录过程放队列。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage