Cam*_*mel 2 ruby api ruby-on-rails ruby-on-rails-3
例如API_key:4faa86aa5848207502000002和API_secret 7375d7d1e89d3d602b184432fbcf3c09c7cb30676f19af9ac57d228be401.
我应该用SecureRandom吗?
谢谢!
arb*_*les 10
ActiveSupport :: SecureRandom可用于实际生成,但您还应考虑在不同事件上使令牌无效和重置的方法.
既然您正在使用Devise,请查看Token Auth策略.您可以使用两个令牌(分别为API Key和API Secret)编写类似的策略.您需要同时编写策略和模型,但在这两种情况下,Token Auth示例都会让您走得很远.
作为起点(来自Token Auth示例),您的模型应声明两个必需参数.
module Devise
module Models
module APIKeyAuthenticatable
...
def self.required_fields(klass)
[:api_key, :api_secret]
end
def reset_keys
self.api_key = self.class.api_key
self.api_secret = self.class.api_secret
end
Run Code Online (Sandbox Code Playgroud)
您可能还想阅读设计的自定义身份验证策略.如果您希望在设计上提供更全功能的API身份验证解决方案devise_oauth2_providable看起来相当不错.