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

时间:2015-03-13 08:45:23

标签: ruby windows unix token credentials

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

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

我想使用环境变量解决方案,但我不知道它是否会以相同的方式用于Windows或Linux。

1 个答案:

答案 0 :(得分:3)

撰写所有方法。像这样:

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运行。