質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

1825閲覧

【Ruby on Rails + Devise】ログイン時、パスワードが作成ルールに基づいてない場合、パスワード変更を促したい

pecchan

総合スコア555

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2017/10/31 00:43

どちらか言うと設計寄りな質問になるかもしれません。

Ruby on Rails + Deviseにて社内システムにログイン機能を追加しました。

テスト運用段階だったため、全社員のパスワードを「123456」としましたが、
間もなく本稼働に移行するのでパスワードを本番用に変更する必要があります。

そこで、パスワードを変更していない社員がログインした場合、
色んなサイトで見かける
「パスワードを変更してして下さい。」
というメッセージを表示、パスワード変更を促したいと思いました。

上記の実現方法を、以下の手順で考えました。

1.ログイン時に、パスワードが作成ルール(英数字何文字など)に基づいてるかチェック
2.1で問題なければログイン、問題あれば変更を促すメッセージを表示しログインさせない

ただdeviseの機能により、パスワードは不可逆で登録されているので
1のチェックをどうやって行えば良いか検討がつきません。

そもそもこういった場合、もっと他に良い方法があるのでしょうか?

どうかアドバイスいただけないでしょうか?
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

ただdeviseの機能により、パスワードは不可逆で登録されているので
1のチェックをどうやって行えば良いか検討がつきません。

はいその通りです。不可逆なので、DBにあるPWをチェックするのではなく
フォームに入力した値が「123456」ではないかをチェックします。

また入力した値に対して、バリデーションを作りたい場合は、
Deviseをインストールした時に生成されたmodelがあると思います。

その中にif文で password == 12345 とチェックしてください。
※このif文は例えなので、別の方法でも大丈夫です。
https://qiita.com/shunhikita/items/772b81a1cc066e67930e

別の方法としてjqueryでバリデーションチェックの方法もありますが、
modelに書いた方が良いかと思います。

投稿2017/10/31 03:37

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pecchan

2017/10/31 04:07

有難う御座います。 フォームの値をチェックするんですね! なるほど!その発想はなかったです! モデルでのチェックも有難う御座います。 本当に助かりました、有難う御座います。
guest

0

パスワードは123456が確定していて、それ以外に変えてくださいということであれば、

ログイン画面に行って、ログインする際に、「アカウント + パスワード(123456)」でログインチェックを行い、それの場合はflashを返すというのはいかがでしょうか?

まぁこれだとパスワードを123456にしたいユーザーがいた場合にはダメですが。。。

投稿2017/10/31 02:14

MasakazuFukami

総合スコア1869

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pecchan

2017/10/31 04:03

有難う御座います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問