在 Ruby 脚本中存储用户令牌的最佳方式

Best way to store a user token in Ruby script

我正在开发一个 Ruby 脚本,专为基于 REST API 的 CLI 而设计。 API 需要一个令牌作为凭据,以便识别用户并允许他检索他的信息。 目前,此脚本每次启动时都会在控制台中询问 30 长度的令牌。

现在我想存储这个令牌以避免每次用户想要使用脚本时都询问它。我不知道最好的方法是什么,我是否必须创建一个包含令牌的隐藏文件,或者要求用户将其存储在环境变量中?

我想使用环境变量解决方案,但我不知道它是否适用于 Windows 或 Linux。

组合所有方法。像这样:

def get_my_token()
  if ENV["MY_TOKEN"]
    return ENV["MY_TOKEN"]
  end

  token_path = File.expand_path("~/.my_token") # will be expanded to user's home (Documents or smth) in windows, check it yourself as I don't have running windows around here
  if File.exists?(token_path)
    return File.read(token_path).strip
  end  

  # resort to asking user for token here
end

ENV 应该放在第一位 - 这样您就可以在出于某些测试目的需要时覆盖您的配置。另请注意,您也可以 运行 您的脚本 MY_TOKEN=xxxx ruby my_app.rb