我有一个Node / express应用程序,使用Passport进行帐户创建和身份验证。我希望能够检查哪些会话处于活动状态,即哪些用户当前已登录。
我可以在每个用户的个人资料上设置一个标记,该标记在登录/注销时会更改,但是我不知道护照如何处理只关闭浏览器并且没有专门前往注销路线的用户,所以我不知道是否在这种情况下,此标志将设置为false。
实现此目标的最佳方法是什么?
我的最终目标是要告诉服务端,当他们收到其他人发送的消息时是否向其他用户发送通知电子邮件-如果他们当前已登录,则不会收到电子邮件。
好的,所以如果您设置了Passport,那么答案取决于您正在使用的会话存储。本质上,您将查询会话存储以查看那里有哪些活动用户,但是这样做的实际机制将根据您的实现而有所不同。一旦知道会话存储是否将给定用户视为活动用户,就可以决定是否发送消息。
但是,会话存储并不是万无一失的。无论您如何设置会话到期时间,几乎都不可能保证商店对所有用户都拥有完备的知识。从用户关闭浏览器窗口到会话认为他或她处于脱机状态,总是会有一定的非零时间。
因此,即使采取了先发制人的尝试来确保用户在发送消息之前已经在线,但如果您想真正可靠地发送邮件,您将希望让您的客户代码发回回执。如果确认失败,那么您可以放心地认为用户没有收到确认,然后在事发后发送电子邮件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句