生成API密钥的最佳方法? 用例

生成API密钥的最佳方法? 用例,api,access-token,api-key,stripe-payments,Api,Access Token,Api Key,Stripe Payments,我正在构建一个iPhone应用程序,只需简单的注册和登录 当用户注册/登录时,我希望Ruby(Sinatra)服务器为该用户生成/获取并返回一个访问令牌,然后iPhone客户端可以使用HTTPS上的基本身份验证在每个后续请求中发送该令牌 我还没有实现OAuth 2.0,以便第三方应用程序可以访问服务器。现在,我正在构建一个简单的内部API(用于我自己的第一方iPhone应用程序) 例子 基本上,我想生成一个类似Stripe的秘密API密钥: 例如:sk_test\NMss5Xyp42TnLD9t

我正在构建一个iPhone应用程序,只需简单的注册和登录

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

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

例子 基本上,我想生成一个类似Stripe的秘密API密钥:

例如:
sk_test\NMss5Xyp42TnLD9tW9vANWMr


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

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

Stripe的密钥本质上是URL安全的Base64。你可以得到类似的结果,比如:

require 'securerandom'

p "sk_test_" + SecureRandom.urlsafe_base64
(Stripe确实会去掉非字母数字字符,但如果您不想在键中使用连字符,那么使用gsub就很简单了。)