【发布时间】:2021-07-19 15:07:10
【问题描述】:
我想使用 Go 或 Node.js 构建一个命令行应用程序。我想让它成为多用户,所以需要登录功能。我可以实现登录功能,但我不明白应该在哪里存储可以在运行时随时获取的用户数据。 需要用户数据来检查用户是否登录,如果他登录的是哪个用户。
需要有关存储用户数据以检查登录状态的方法的帮助
编辑: 我曾想过这一点-如果存在配置文件,则表示用户已登录,否则不会。然后我意识到,如果有人篡改文件,整个登录点功能就会失效。我猜肯定有更好的方法来做到这一点,我想通过在这里询问来了解
【问题讨论】:
-
我认为问题没有传达我想问的内容。我正在编辑问题
-
有很多方法可以持久化数据。常见选项包括:使用现成的数据库、将数据存储在文件中或使用远程服务器。
-
可以设置环境变量。这确保它只在当前的 shell 会话中持续存在
-
您为什么担心最终用户会手动篡改磁盘上的配置文件?如果您将校验和与数据一起存储,您可以稍微确信它没有被篡改。为了提高信心,您可能需要引入一些远程权限。
-
为了获得灵感,您可以看看 Google Cloud SDK(
gcloud命令)是如何做到的。默认情况下,它将其状态存储在$HOME/.config/gcloud目录下。它似乎包含任意格式的文件、YAML 以及一些 sqlite 数据库。 (很明显,这个程序实现它的事实并不意味着这是一个“好”的策略。一如既往:“它取决于”)。
标签: node.js go authentication terminal command-line-interface