Изменить минимальную длину has_secure_token в Rails 6.1

#ruby-on-rails #ruby-on-rails-6

#ruby-on-rails #ruby-on-rails-6

Вопрос:

В Rails 6.1 вводится параметр для длины защищенного токена, например

 has_secure_token :auth_token, length: 36
 

https://api.rubyonrails.org/classes/ActiveRecord/SecureToken/ClassMethods.html

Здесь есть MINIMUM_TOKEN_LENGTH = 24 набор: https://github.com/rails/rails/blob/master/activerecord/lib/active_record/secure_token.rb

Как мне переопределить это? Мне нужны токены с меньшей длиной.

Ответ №1:

Попробуйте это переопределить….

Создайте файл в config/initializers/active_record/secure_token.rb

 # frozen_string_literal: true

module ActiveRecord
  module SecureToken
    MINIMUM_TOKEN_LENGTH = 2 // Add your minimum length
  end
end
 

Примечание: has_secure_token использует
SecureRandom::base58
для генерации минимального 24-символьного уникального токена, поэтому коллизии крайне маловероятны.

Надеюсь, этот патч сработает для вас.