1

我正在编写一个 ruby​​ gem,它有一个命令行界面(使用 Thor)我称之为“myrubygem”。

用户应该能够执行以下操作:

myrubygem init

这应该要求提供 github 登录名和密码,并使用 github api 在 github 上创建一个存储库(除了我希望 gem 做的其他一些事情)。

myrubygem push 

这应该提交并将一些文件推送到 repo 。这可能是一个重复的操作,我不想一直询问用户他的 github 登录名和密码。此外,将密码存储在文本文件中也不是一个好主意。

有没有办法缓存凭据,以便只有第一个命令需要提示,其余命令可以记住凭据?

4

2 回答 2

0

在尝试了几件事来解决这个问题之后,我将回答我自己的问题并解释我最终做了什么。

1) 保存 Oauth 令牌

这是我尝试的第一件事。我向用户询问了 Github 登录名和密码,使用 github_api gem 使用 Api 进行身份验证。然后我创建了一个具有足够权限的 OAuth 令牌。我存储了这个 OAuth 令牌并使用它来登录。

这很混乱,有安全问题,看起来有问题。

所以我最终这样做了:

2)将责任交给系统git命令

我使用来自 ruby​​ 的系统命令来使用“git”命令来执行所有 git 操作。Git 会询问用户登录详细信息,它知道如何缓存登录信息。更少的头痛和更少的代码。

于 2012-10-30T07:18:41.400 回答
0

不适github用于cookies?然后,您应该根据需要存储和呈现 cookie 内容。维基百科条目可能在这里有所帮助:http ://en.wikipedia.org/wiki/HTTP_cookie

于 2012-09-24T06:47:15.663 回答