35

ユーザー認証のために、Devise が私のプロジェクトの 1 つとどのように連携するかを試しています。管理者がユーザー名とユーザーのパスワードのバッチを随時生成できる必要があるというユーザー要件があり、管理者は新しいユーザー名とパスワードをユーザーに電子メールで送信します。

管理者が MySQL データベースでのダイレクト SQL の知識を持っていると仮定すると、生成されたユーザー名/パスワードはどのように Devise によって認識されるのでしょうか? ありがとう!

4

4 に答える 4

83

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_token20文字のトークンを返します。上記の例では、Railsが提供するメソッドをpassword_length使用して、生成されたトークンの最初の文字を切り取っています。String#first

于 2011-08-29T14:39:20.843 に答える
6

1 つのオプションは、Devise.generate_token を使用することです。いえ

password = User.generate_token('password')
User.create!(:email => 'someone@something.com', :password => password, :password_confirmation => password)

このオプションは、Devise ではかなり長い間利用できませんでした。他の回答(Friendly_token)を参照してください。

于 2010-12-13T21:31:21.300 に答える
0

(簡単な注意:私はレール初心者です)

generate_token を試してみましたが、思ったように動作しません (ドキュメントを見てください)

(私は Rails 3.0.5 を使用しており、devise 1.1.7 を使用しています)

私が見つけたのは、Deviseがバックグラウンドでそれらすべてを生成するということです:

User.create!(:email => "me@example.com", :password => "password")

Devise は、encrypted_pa​​ssword と salt を作成する必要があります。(コンソールを開いて試してみてください)

于 2011-03-04T16:27:25.997 に答える