我正在编写一个名为rCharts的R包,它允许用户从R创建,自定义和发布JS图表。其中一个发布选项是gist.github.com。
我使用Github的v3 API实现了基本身份验证,该API使用用户名和密码来获取令牌,然后使用令牌创建一个要点。
现在,我希望在第一次生成令牌时存储令牌,以便(a)每次都不会提示用户输入用户名和密码,以及(b)每次都通过生成新令牌来防止令牌扩散。
我想到了几个可以存储令牌的地方。
~/.rCharts
.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
)