为URL的Rails创建唯一令牌

时间:2018-12-11 11:05:32

标签: ruby-on-rails ruby-on-rails-4 time uniqueidentifier

我正在使用ahoy电子邮件gem进行电子邮件分析。对于跟踪电子邮件,它们只是

@ahoy_message = AhoyEmail.message_model.new
ahoy_message.token = generate_token

generate令牌方法就像

   def generate_token
      SecureRandom.urlsafe_base64(32).gsub(/[\-_]/, "").first(32)
   end

我怀疑生成的令牌中可能有重复项,我可以每次检查生成的令牌是否唯一,因此我试图更改令牌生成方法,如下所示,

 def generate_token
   URI.escape(Base64.encode64 "#{Time.now.to_f},#{@mail.id}") # @mail is object in db
 end

默认方法是否还可以,否则我可以使用与时间相关的方法来创建唯一令牌吗?

1 个答案:

答案 0 :(得分:0)

https://blog.bigbinary.com/2016/03/23/has-secure-token-to-generate-unique-random-token-in-rails-5.html

您可以使用has_secure_token为模型的属性自动生成令牌。