ユーザー認証のために、Devise が私のプロジェクトの 1 つとどのように連携するかを試しています。管理者がユーザー名とユーザーのパスワードのバッチを随時生成できる必要があるというユーザー要件があり、管理者は新しいユーザー名とパスワードをユーザーに電子メールで送信します。
管理者が MySQL データベースでのダイレクト SQL の知識を持っていると仮定すると、生成されたユーザー名/パスワードはどのように Devise によって認識されるのでしょうか? ありがとう!
ユーザー認証のために、Devise が私のプロジェクトの 1 つとどのように連携するかを試しています。管理者がユーザー名とユーザーのパスワードのバッチを随時生成できる必要があるというユーザー要件があり、管理者は新しいユーザー名とパスワードをユーザーに電子メールで送信します。
管理者が MySQL データベースでのダイレクト SQL の知識を持っていると仮定すると、生成されたユーザー名/パスワードはどのように Devise によって認識されるのでしょうか? ありがとう!
Devise.friendly_token
次の方法を使用します。
password_length = 6
password = Devise.friendly_token.first(password_length)
User.create!(:email => 'someone@something.com', :password => password, :password_confirmation => password)
参考:Devise.friendly_token
20文字のトークンを返します。上記の例では、Railsが提供するメソッドをpassword_length
使用して、生成されたトークンの最初の文字を切り取っています。String#first
1 つのオプションは、Devise.generate_token を使用することです。いえ
password = User.generate_token('password')
User.create!(:email => 'someone@something.com', :password => password, :password_confirmation => password)
このオプションは、Devise ではかなり長い間利用できませんでした。他の回答(Friendly_token)を参照してください。
(簡単な注意:私はレール初心者です)
generate_token を試してみましたが、思ったように動作しません (ドキュメントを見てください)
(私は Rails 3.0.5 を使用しており、devise 1.1.7 を使用しています)
私が見つけたのは、Deviseがバックグラウンドでそれらすべてを生成するということです:
User.create!(:email => "me@example.com", :password => "password")
Devise は、encrypted_password と salt を作成する必要があります。(コンソールを開いて試してみてください)