модуль ActiveRecord::SignedId
Active Record Подписанный идентификатор
Общедоступные методы экземпляра
# File activerecord/lib/active_record/signed_id.rb, line 112 def signed_id(expires_in: nil, purpose: nil) self.class.signed_id_verifier.generate id, expires_in: expires_in, purpose: self.class.combine_signed_id_purposes(purpose) end
Возвращает подписанный идентификатор, сгенерированный с использованием предварительно настроенного ActiveSupport::MessageVerifier экземпляра. Этот подписанный идентификатор защищён от подделки, поэтому его безопасно отправлять по электронной почте или делиться с внешним миром. Его можно дополнительно настроить на истечение срока действия (по умолчанию срок действия не настроен), а также ограничить определённым назначением. Если дата истечения срока действия была превышена до вызова find_signed, то идентификатор не найдёт соответствующую запись. Если задано назначение, то оно также должно совпадать.
Если вы случайно выпустили подписанный идентификатор, который хотите отозвать раньше, чем дата истечения срока действия (или, возможно, вы забыли установить дату истечения срока действия, хотя и намеревались это сделать!), вы можете использовать назначение, чтобы по существу добавить версию к signed_id, как показано ниже:
user.signed_id purpose: :v2
Затем вы измените вызовы find_signed , чтобы потребовать этого нового назначения. Любые старые подписанные идентификаторы, которые не были созданы с указанным назначением, больше не смогут найти запись.
© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.