我应该在从服务器或客户端注销时清除 cookies 吗?
Should I clear cookies on logout from the server or the client?
我使用 React 作为客户端,使用 ExpressJs 作为服务器。当用户点击 logout
按钮时,我应该向服务器发送清除 cookie 的请求还是应该从客户端执行?
两者都有。我会使用 passport.js 来管理服务器端的东西,并使用他们的教程 https://www.passportjs.org/tutorials/password/ 进行 sessionid 身份验证。在服务器上,一旦您对注销路由执行 ping 操作,它将使传递给经过身份验证的路由的任何 sessionid 失效,并且不会让您通过。不同时使用两者的问题是,在访问注销之后,只有它在服务器上无效,您的 sessionid 对经过身份验证的路由无效。用户似乎具有相同的访问权限,但一旦他们尝试访问路由,就会抛出 401 错误。那么只使用客户端注销的问题是用户将无法看到他们可以访问的内容,但是任何设法窃取会话 ID 的人仍然可以使用他们的帐户!
我使用 React 作为客户端,使用 ExpressJs 作为服务器。当用户点击 logout
按钮时,我应该向服务器发送清除 cookie 的请求还是应该从客户端执行?
两者都有。我会使用 passport.js 来管理服务器端的东西,并使用他们的教程 https://www.passportjs.org/tutorials/password/ 进行 sessionid 身份验证。在服务器上,一旦您对注销路由执行 ping 操作,它将使传递给经过身份验证的路由的任何 sessionid 失效,并且不会让您通过。不同时使用两者的问题是,在访问注销之后,只有它在服务器上无效,您的 sessionid 对经过身份验证的路由无效。用户似乎具有相同的访问权限,但一旦他们尝试访问路由,就会抛出 401 错误。那么只使用客户端注销的问题是用户将无法看到他们可以访问的内容,但是任何设法窃取会话 ID 的人仍然可以使用他们的帐户!