2

作成中の新しいレールシステムがあります。認証用のデバイスをセットアップ中です。私の問題は、既存のすべてのユーザーが確認トークンを持っていないことです。トークンを取得する方法がわかりません。ログイン時にユーザーがトークンを再送信するように求められると予想していましたが、そうではありません。さらに、ユーザーが正常に認証されたときに、認証プロセスを変更してこのリンクを追加する方法がわかりません。

一定期間ログインできるように変更したいのですが、期間が切れる前に確認を再送信するためのリンクが表示されます。ログインできる期間を設定する方法があることがわかりましたが、その設定がどこにあるのかわかりません。また、データベースに confirm_token がまったくないため、あまり役に立たないことも懸念しています。

4

2 に答える 2

2

これは、devise の確認可能なオプションと関係があります。ここでは、2 つのことを行う必要があります。最初に、確認に回答できる期間を設定する必要があります。

ユーザーが確認しなければならない期間を設定するには、デバイス初期化子を構成し、1 行のコメントを解除する必要があります。

# config/initializers/devise.rb
config.confirm_within = 2.days

次に、確認メールを手動で送信する必要があります (この関数は、存在しない場合は確認トークンも作成します)。これは、コンソールまたはスクリプトで行うことができます。

# in console
User.find(1).send_confirmation_instructions

それをテストしてから、次のスクリプトを記述します。

# script.rb
User.all.each do |user|
  user.send_confirmation_instructions
end

何千人ものユーザーがいる場合、これは非常に遅いプロセスですが、仕事はできます。

チェックアウト:確認可能

于 2011-08-23T21:10:06.273 に答える
1

そのように既存のユーザーを確認するだけです

User.all.each do |user| user.confirm! end

コンソールまたはスクリプトで。

于 2011-09-09T21:10:28.343 に答える