2

我正在编写一个名为 rCharts 的 R 包,它允许用户从 R 创建、自定义和发布 JS 图表。发布的选项之一是 gist.github.com。

我已经使用 Github 的 v3 API 实现了基本身份验证,该 API 使用用户名和密码来获取令牌,然后使用该令牌创建一个 gist。

现在,我想在第一次生成令牌时存储令牌,以便 (a) 不会每次都提示用户输入用户名和密码,以及 (b) 通过每次生成新令牌来防止令牌扩散。

我想到了几个可以存储令牌的位置。

  1. rCharts 包目录。
  2. ~/.rCharts
  3. .rProfile

我正在尝试思考每种方法的优缺点。我喜欢使用.rProfile,但是如果用户从不同的目录打开 R 怎么办。

如果有人可以帮助我了解什么是最佳解决方案,我将不胜感激。

更新。感谢@hadley,我发现我实际上使用的是 OAuth 而不是基本授权。使用基本授权,发布要点真的很容易。这是我的代码。我相信,检索用户名和密码最安全的方法是使用options. 由于 Github API 最近发生了一些变化,因此需要用户代理字符串。

require(httr)
POST(
  url = 'https://api.github.com/gists',
  config = c(
    authenticate('username', 'password', type = 'basic'),
    add_headers("User-Agent" = "Dummy")
  ),
  body = body
)
4

0 回答 0