Создание уникального токена для рельсов URL - PullRequest
0 голосов
/ 11 декабря 2018

Я использую Ahoy Emails Gem для анализа электронной почты.Для отслеживания сообщений электронной почты они просто

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

Метод генерации токена, как,

   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 голосов
/ 11 декабря 2018

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

Вы можете использовать has_secure_token для автоматической генерации токена для атрибута модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...