1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

deviseを使用したログイン機能実装での注意事項

Last updated at Posted at 2021-04-09

フリマアプリのログイン機能実装の際にターミナルに現れたエラーの解消方法です。
deviseを入れてログイン機能を実装中にターミナルに以下のエラーを発見しました。
1。赤いいつものエラー画面にはなりませんでした。
2。データーベースに記録されずに新規登録画面に戻ります。
3。ターミナルのエラーは以下です。

20210409-235146.png

terminal
=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "first_name"=>"前田", "last_name"=>"卓大", "first_name_prono"=>"マエダ", "last_name_prono"=>"タクオ", "birthday(1i)"=>"1930", "birthday(2i)"=>"1", "birthday(3i)"=>"1"}, "commit"=>"会員登録"}
Unpermitted parameter: :encrypted_password
   (0.2ms)  BEGIN
  User Exists? (0.3ms)  SELECT 1 AS one FROM `users` WHERE `users`.`email` = BINARY 'sample@aaaaaa' LIMIT 1
   (0.1ms)  ROLLBACK

##着目点
1点目:Unpermitted(許可されていない) parameter: :encrypted_password
許可されていないパスワードとは???
2点目:メールの後でロールバック(rollback)???
ここで
@magatama さん「deviseで登録できない疑うところ6点」を参照しました
(大変勉強になりました)

https://qiita.com/magatama/items/c5705e45ce8d60f925ff

deviseを用いてログイン機能を実装した場合いは
❶view

views/registrations/new.html.erb
<%= f.password_field :password, class:"input-default",...... %>

①passwordをviewファイルに入力

❷usersテーブル
20210410-000813.png

②encrypted_passwordをカラム名にする

以下はdeviseに実装内容になります。
1.viewでpasswordとpassword_confimationが同じかチェック
2.(同じならば)view受け取ったpasswordをdevise_controllerで'encryped_password'に暗号化した文字列を返す

実際に暗号化されてデータベースに入ったpasswordは以下です。
$2a$12$DH1OsQXerMUhOzVxW6T/Z.xnjabsf8unyo6OeeMZhOgWy57mexsJm

私の間違いはviewファイル内でencrypted_password入力としていた点です。

passwordにするとうまくいきました

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?