読者です 読者をやめる 読者になる 読者になる

コンパイラかく語りき

文系新卒プログラマーのメモ

文系プログラマーがRailsでロシア語アプリケーションをつくる⑪ ~パスワードと認証機能の追加~

Rails

どうも!chuckです。今回はユーザーのモデルにパスワードを追加します。ただし、単なる文字列としてではなく、安全面を考慮したパスワードとして開発していきます。

 

chuckwebtips.hatenablog.com 

 

今回も例のごとくRailsチュートリアルを参考にしていきますヽ(=´▽`=)ノ

 

 

パスワードカラムの追加

まずは暗号化に必要なbcrypt-rubyというgemをインストールします。

f:id:chuck0523:20150723205230p:plain

 

そしておなじみのbundle install。

 

f:id:chuck0523:20150723205706p:plain

これからパスワードのカラムを追加するので、テストにもカラムの存在を確認する記述を追加。

 

いざ、カラムの追加!

rails g migration add_password_digest_to_users password_digest:string

を実行します。

 

生成されたファイルがこちら。

f:id:chuck0523:20150723210105p:plain

 

マイグレーションを実行して、テストがパスすることを確認します。

f:id:chuck0523:20150723210218p:plain

 

一時パスワードカラムの追加

次に一時パスワードのためのカラムを追加します。

これらはユーザーから入力されたパスワードと確認用パスワードをマッチングさせるためのものです。データベースには登録されず、内容は破棄されます。

 

2つのカラムが存在すること、及び一致することをテスト。f:id:chuck0523:20150723211036p:plain

f:id:chuck0523:20150723211046p:plain

spec/model/user_spec.rb

 

そして、has_secure_passwordメソッドを追記。このメソッドのおかげで安全なパスワードが実装されます!

f:id:chuck0523:20150723211122p:plain

app/models/user.rb

 

これで現時点でのテストに全て通過しますヽ(=´▽`=)ノ

f:id:chuck0523:20150723211454p:plain

 

最後にパスワードの長さだけ指定します。今回は最低限6文字ということで。

こちらが最終的なUser.rbファイルになります。

f:id:chuck0523:20150723213544p:plain

 

Railsコンソールから自分のデータを作ってみる!

f:id:chuck0523:20150723213558p:plain

できよーヽ(=´▽`=)ノ

 

まとめ的な

というわけで、Railsチュートリアルに沿ってパスワードと認証機能を追加しました!次回はユーザ登録機能を実装したいと思います(`・ω・´)ゞ