Reactjs 在React中使用Httponly Cookie持久化用户会话

Reactjs 在React中使用Httponly Cookie持久化用户会话,reactjs,express,security,Reactjs,Express,Security,当使用HttpOnly Cookie存储会话数据时,我试图找出在客户端通过React获取用户数据/持久化用户会话的最佳方法 我想做一些类似的事情: useEffect( () => { const getSession = async () => { const session = await fetch('/session/current') if(session){ .... there is an active session ..

当使用HttpOnly Cookie存储会话数据时,我试图找出在客户端通过React获取用户数据/持久化用户会话的最佳方法

我想做一些类似的事情:

useEffect( () => {

const getSession = async () => {
   const session = await fetch('/session/current')

   if(session){
       .... there is an active session
        .... set the local state to hold user data
      }   
   }

   getsession();
}
所以我想弄清楚的问题是,当用户登录并关闭浏览器,然后重新进入我的网站。如何验证用户是否仍然拥有有效的会话,然后将必要的用户数据发送到客户端,以知道用户已通过身份验证


当用户登录并关闭浏览器时,服务器端仍然存在有效的会话HttpOnly cookie。点击端点,查看是否存在有效会话,然后返回用户数据是最好的方法吗?

首先,一旦用户登录后从服务器获得cookie或令牌,您必须将本地会话存储存储在浏览器中,因此,如果用户关闭浏览器并重新打开,它将自动注销


或者一定要提到ttl,这样它也会有一些到期时间

因为它是一个仅用于http的cookie,所以无法从客户端处理这个问题。您需要将cookie发送到后端以验证会话。如果用户关闭并重新打开浏览器,就会丢失cookie。为了让用户登录,您需要跟踪用户的其他信息,如IP地址、操作系统、浏览器类型等,并将其保存在ttl的内存缓存中。但是这样做是不安全的。

正如我所提到的,这是使用HttpOnly cookie。关键是避免在客户机上存储任何内容。