首页 > 解决方案 > 在刷新浏览器时使用cookies(java + react)转到最后完成的步骤

问题描述

好的,所以我有一个简单的网站,它强制用户从最后完成的步骤开始。每当用户刷新页面时,他需要在应用程序初始化时调用:

    REST /user/{id}/step 

该端点将告诉用户完成的位置。问题是我只使用 http cookie。所以我无法从 javascript 中的 cookie 中获取此 {ID}。

目前,我添加了名为 clientId 的附加 cookie(仅不是 http)。所以应用程序可以从 cookie 中获取他的 id,并调用这个特定的端点。

它正在工作,但我觉得这不是最好的方法。它几乎没有副作用,比如在注销时清除这个愚蠢的 cookie 等情况。

什么是最佳实践?我一直在考虑创建额外的端点,将在每个应用程序初始化时使用

   REST /user/status
   // I want to be restfull, so I dont want REST user/logged/step

无论用户是否登录,它都会返回 setCookie clientId="" 或 setCookie clientId={ID},在这种情况下,我什至不需要关心在前端清除 cookie,有什么想法吗?

标签: javaspringreactjsspring-bootcookies

解决方案


问题是我只使用 http cookie。

那么这个 http only cookie 包含什么?我假设用户的会话?那么,如果您应该能够从会话令牌中获取 ID,为什么还需要在 URL 中指定此用户 ID?

我相信您应该只拥有以下端点,该端点REST /user/step返回当前用户的步骤号(由仅 http cookie 中的会话令牌定义),或者如果用户未登录,则返回 401 代码(未经授权)。


推荐阅读