Hesap sahibine, sabit bir zaman aralığından sonra hesaplarına erişemeyecekleri bir şekilde, abonelik tipi bir işlev eklemek istiyorum. Not: Onların hesabını veritabanından silmek istemiyorum. Uygulamamda zaten devise-2.1.2
yükledim. Herhangi bir bedenin herhangi bir fikri var mı? Nasıl yapılabilir? Ben Ruby on rails
için acemi oldum, bu yüzden adımları açıklarsanız bana çok yardımcı olacaktır.Kullanıcılar Devise'yi kullanarak nasıl kilitlenir?
8
A
cevap
18
Devise Sen :failed_attempts.
1. Adım ayarlayın config/initializers/devise.rb için lock_strategy
set belirlemek zorunda Devise Lockable Documentation
yılında :lockable
seçeneği, çek ile bir Buil-in çözümü var kullanımı:
# Defines which strategy will be used to lock an account.
config.lock_strategy = :failed_attempts
# Defines which key will be used when locking and unlocking an account
config.unlock_keys = [ :time ]
# Defines which strategy will be used to unlock an account.
# :time = Re-enables login after a certain amount of time (see :unlock_in below)
config.unlock_strategy = :time
# Number of authentication tries before locking an account if lock_strategy
# is failed attempts.
config.maximum_attempts = 3
# Time interval to unlock the account if :time is enabled as unlock_strategy.
config.unlock_in = 2.hours
Aşama 2 Sizin bu gibi Modeli kilitlenebilir eklemek gerekir:
class Example < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:lockable
Adım 3 göçler vasiyetle esere
class AddLockableToExamples < ActiveRecord::Migration
def change
add_column :examples, :failed_attempts, :integer, default: 0
add_column :examples, :unlock_token, :string
add_column :examples, :locked_at, :datetime
end
end
Selamlar yapmak üret !!
Zihnimde bu şeyi silmek istedim, 'başarısız denemeler', herhangi bir kullanıcı belirli sayıda kez kaydolmayı denediğinde yalnızca bu durum için geçerlidir. –
Ayrıca belgeler, bir hesabı kilitlemek için bir zaman tipi stratejisinin kullanılabileceğini söylüyor. Bu yüzden, aboneliği biter bitmez hesabına birkaç ay boyunca abonelik vermek istiyorum, hesabını kullanamayacak. Mümkün mü? –
Kullanıcı oturum açmayı x kez denediğinde kilitlenir ve unlock_strategy'yi zamana ayarlayabilirsiniz. İhtiyacın olan budur! – felipeclopes