在 ClojureScript 中存储登录凭据的最佳实践

问题描述 投票:0回答:1

在 ClojureScript 中,我最初以原子状态存储登录凭据和授权信息。然而,我遇到了一个持续存在的问题,即原子状态在页面刷新时被刷新,导致我探索替代存储解决方案。

以前的方法:

(set! (.-cookie js/document) {:customer true :supplier false :admin false :user "test" :company "company-test"})

问题:

  • 我正在寻求一种更可靠的方法的建议,以在客户端持久存储登录凭据,而不会在页面刷新时丢失数据。

  • 在 cookie 中存储登录凭证等敏感数据是一种安全的方法吗?是否存在潜在的漏洞或提供增强安全性的更好替代方案?

clojure clojurescript hyperfiddle
1个回答
0
投票

在前端存储凭据(登录名+密码+其他内容)的最佳实践是不存储它们。您可以使用正确的会话 ID 存储安全 cookie,而不是凭据本身。如果 cookie 不是会话 cookie,那么它就是永久 cookie。此类 cookie 也有有效期。 当然,这需要你有一个可以存储所有会话信息的后端。

我不会将代码块中的地图称为“凭据”,它更像是“用户属性”或类似的东西。除了服务器之外,它们不应保留在任何地方,并且在每个页面加载时,应使用存储在 cookie 中的会话 ID 再次检索这些详细信息。请注意,您不需要在客户端执行任何操作即可使 cookie 发挥作用 - 一切都在后端完成。

© www.soinside.com 2019 - 2024. All rights reserved.