生成API密钥的最佳方法是什么?

时间:2013-09-20 16:01:35

标签: api access-token api-key stripe-payments

用例

我正在使用简单的注册和登录来构建iPhone应用程序。

当用户注册/登录时,我希望Ruby(Sinatra)服务器生成/获取并返回该用户的访问令牌,然后iPhone客户端可以使用基本身份验证通过HTTPS发送每个后续请求。 / p>

我还没有实施OAuth 2.0,以便第三方应用可以访问服务器。现在,我只是在构建一个简单的内部API(对于我自己的第一方iPhone应用程序)。

实施例

基本上,我想生成像Stripe一样的秘密API密钥:https://manage.stripe.com/account/apikeys

例如:sk_test_NMss5Xyp42TnLD9tW9vANWMr

在Ruby中说什么是最好的方法?

1 个答案:

答案 0 :(得分:21)

Ruby stdlib提供了一整套称为SecureRandom的安全随机数据生成器。无论你想要什么,你都可以在那里找到它。

Stripe的密钥基本上是URL安全的Base64。你可以得到类似的东西:

require 'securerandom'

p "sk_test_" + SecureRandom.urlsafe_base64

(Stripe确实删除了非字母数字字符,但如果您不想在密钥中使用连字符,则可以轻松使用gsub。)