私はアカウント所有者のユーザーのために自分のアプリケーションにサブスクリプションタイプの機能を追加したいのですが、一定の時間が経過するとアカウントにアクセスできなくなりますか?注:私はデータベースから自分のアカウントを削除したくない。私は既にアプリケーションにdevise-2.1.2
をインストールしました。どのようにしてそれを行うことができますどのようなアイデアを持っていますか?私はRuby on rails
への初心者ですので、あなたがステップを説明してくれればとても助かります。Deviseを使用してユーザーをロックする方法はありますか?
8
A
答えて
18
工夫がDevise Lockable Documentation
に:lockable
オプションチェックと釜インソリューションを持っているあなたは:failed_attempts.
ステップ1 にlock_strategy
セットを設定する必要があり、あなたのconfig /初期化子/ devise.rbを設定します。使用する:
# 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
ステップ2工夫の作業
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
よろしくを作るためにマイグレーションを生成
class Example < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:lockable
ステップ3 !!:はあなたがこのようあなたのモデルにロック可能なを追加する必要があります
関連する問題
- 1. devise parent_controllerをdevise inherited controllerに使用する方法はありますが、ActiveAdmin devise controllerをスキップしますか?
- 2. リーフレットを使用してユーザーを特定する方法はありますか?
- 3. ロールを使用してユーザーをリダイレクトする方法はありますか。
- 4. gitを使ってファイルをロックする方法はありますか?
- 5. deviseを使用してオブジェクトの特定の属性をレンダリングする方法はありますか?
- 6. Devise - ロック可能なアカウントをロックする方法
- 7. Deviseを使用してカスタムサインインページフォームを使用する方法
- 8. iOSの写真フレームワークを使用して写真をロックする方法はありますか?
- 9. iOS SDKを使用してGoogleキャストでロック画面コントロールを追加する方法はありますか?
- 10. Javaでディレクトリをロックする方法はありますか?
- 11. user_idでdeviseユーザーを探す方法は?
- 12. iOSデバイスのロック/ロック解除を知る方法はありますか?
- 13. w Devise、SignInユーザーに別のユーザーとしてサインインする方法
- 14. deviseを持つユーザーとは異なるモデルを使用する方法
- 15. iOS用のxamarin.formsのユーザー名とパスワードを使用してwebviewを認証する方法はありますか?
- 16. deviseユーザー用のプロファイルを作成する方法は?
- 17. フラグメントオリエンテーションをロックしないでアクティビティの方向をロックする方法はありますか?
- 18. Devise Invitableを使用して組織にユーザーを招待する
- 19. スレッドIDに基づいてスレッドをロックする方法はありますか?
- 20. ブラウザのコンソールを使用してユーザーからデータを取得する方法はありますか?
- 21. WinNTプロトコルを使用してActive DirectoryからユーザーGUIDを取得する方法はありますか?
- 22. click.promptを使用して有効な日付をユーザーから取得する方法はありますか?
- 23. twitter APIを使用してユーザー情報を取得する正しい方法はありますか?
- 24. apprequestを使用してキャンバスページではなくアプリケーションプロファイルページにユーザーをリダイレクトする方法はありますか?
- 25. 古いバージョンのアプリケーションを使用しているユーザーをブロックする方法はありますか?
- 26. ページのDOMをフリーズまたはロックする方法はありますか?
- 27. devise、omniauthを使用してリモートのレールアプリケーションにログインする方法
- 28. BATCHコマンドを使用して、コンソールとバックグラウンドタスクでユーザーの入力を検出する方法はありますか?
- 29. AuthenticationSuccessHandlerを使用してユーザーをページにリダイレクトする方法はありますか?
- 30. アクセストークンメカニズムを使用してangular.jsでユーザーをリダイレクトする方法はありますか?
「失敗した試行」は、あるユーザーが一定回数サインアップしようとした場合にのみ、その状況のためのものです。 –
また、ドキュメントでは、アカウントをロックするためにタイムタイプ戦略を使用できると述べています。だから、私は数ヶ月間、サブスクリプションが終わるとすぐに彼のアカウントを使用することができないユーザーにサブスクリプションを与えたいと思う。これは可能ですか? –
ユーザーはx回のログイン試行でロックし、unlock_strategyを時間に設定することができます。それがあなたが必要とするものです! – felipeclopes