Node.js 用户更改密码后注销

Node.js 用户更改密码后注销,node.js,express,session,next.js,Node.js,Express,Session,Next.js,我看到一些网站是这样实现的: 他们的前端每秒向服务器发出一个请求,以检查用户会话是否有更改 但其他网站没有这个功能,但他们仍然可以在更改密码后让用户注销,而无需等待用户刷新页面 他们使用什么机制?或者你有什么例子吗?有两种方法可以做到这一点(我想到了) 第一种方式是“轮询”,我猜您已经看到了它的工作原理,前端每隔几秒钟或几分钟发出一个HTTP请求来检查用户状态 第二种方法是使用。这是一个持续打开的连接,因此在网络日志中来回传递的数据并不明显,因此您可能看不到它。一种方法是在用户更改密码时删除数据

我看到一些网站是这样实现的: 他们的前端每秒向服务器发出一个请求,以检查用户会话是否有更改

但其他网站没有这个功能,但他们仍然可以在更改密码后让用户注销,而无需等待用户刷新页面


他们使用什么机制?或者你有什么例子吗?

有两种方法可以做到这一点(我想到了)

第一种方式是“轮询”,我猜您已经看到了它的工作原理,前端每隔几秒钟或几分钟发出一个HTTP请求来检查用户状态


第二种方法是使用。这是一个持续打开的连接,因此在网络日志中来回传递的数据并不明显,因此您可能看不到它。

一种方法是在用户更改密码时删除数据库中存储的所有身份验证令牌

举个粗略的例子:

const user = await findById(userId) // Find user

user.password = newPassword // Set new user password

user.tokens = [] // Delete all auth tokens by setting it to an empty array

await user.save() // Save user changes to the database

这种方法不会自动将用户从前端应用程序注销,但感谢您的回答。我明白了,现在就知道了。。如何从浏览器中检查前端应用程序是否与服务器有套接字连接?例如,在chrome中,您可以转到“网络”选项卡,然后选择“WS”