java - 在刷新浏览器时使用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,有什么想法吗?
解决方案
问题是我只使用 http cookie。
那么这个 http only cookie 包含什么?我假设用户的会话?那么,如果您应该能够从会话令牌中获取 ID,为什么还需要在 URL 中指定此用户 ID?
我相信您应该只拥有以下端点,该端点REST /user/step
返回当前用户的步骤号(由仅 http cookie 中的会话令牌定义),或者如果用户未登录,则返回 401 代码(未经授权)。