Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。1,412件0現在railsのバージョン4.2.5にて、deviseを用いて簡単なアプリケーションの開発をしているのですが、メールを使わずにパスワードをリセットをする必要が出てきました。そこで、usersテーブルに秘密の質問とその答えのカラムを用意し、以下のような手順でパスワードリセットを作ろうと考えました。1deviseのログイン画面にあるパスワードリセットのリンクを書き換えて、ここをクリックすると、全ユーザから自分の名前を選択する画面に移動。2名前を選択すると、秘密の質問を選択するフォームと答えを入力するフォームの画面へ移動。今この中で3の条件分岐までは作れたのですが、パスワードを変更するフォームの作り方が分からない状況です。そこで質問なのですが、まずそもそもdeviseにおいてメールを使わずにパスワードリセットを実装することは可能でしょうか?またもし可能であれば、どのようにすればパスワードを変更する事が出来るでしょうか?まだ初めて一か月程度で全然知識がない状況なので、難しいことだと分からないかもしれないですが、ご回答のほどよろしくお願いいたします。'hogehoge')パスワードの変更そのものは、これでできますので、単純にはこの情報を入力させるフォームを作れば良いことになります。Deviseのパスワード編集フォームを参考にすれば良いでしょう。その前に、質問のような手順が本当に必要なセキュリティレベルを満たしているのか、それに応じた実装が可能か、十分検討された方が良いと思います。「秘密の質問と答え」方式のパスワードリセットはセキュリティ的にはあまり良いものとはされていませんが、リスクは検討されていますか?また、認証機構は正常系の処理は単純なので手探りでもできてしまいますが、異常系含めて完全なものを実装するのは非常に大変です。「ユーザーが自分のパスワードリセットができる」機能を作ったつもりが、実際の実装は「誰でも任意のユーザーのパスワードリセットができる」ものかもしれません。「秘密の質問を選択するフォームと答えを入力するフォームの画面」をすでに作られているようなので、似たような書き方で「user(特に記載がないので、deviseを使用しているモデルがuserだと仮定します)のpasswordを書き換えるフォーム」を実装すればよいです。8:24saxtondreysaxtondrey1ご回答ありがとうございます。加えて質問なのですが、deviseによって自動的に生成されたパスワードは暗号化されてusersテーブルに保存されています。14:13ちなみに現在、deviseの中のパスワードを変更するのが書いてあるところを参考にform_forにてフォームは作ったのですが、入力したパスワードに変更してくれない状況です。古い方のパスワードでもログインできなくなるので、パスワード自体は変わっているのだと思います。フォームはパスワード入力するのとその確認のものを用意したのですが、両方が同じでなくても送信が通ります。文字数の制限もできていない状況です。"new-password")と入力しています。必要そうな情報がこれぐらいしか思い浮かばないですが、よろしくお願いいたします。15:11上記の件ですが、色々調べたりしながらやっていたら解決しました。ありがとうございます。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。公開5周年をお祝いしましょう!🌸コメントで回答する理由を教えてください関連する質問2Rails4+Deviseのユーザ情報編集画面のフォームから受け取った値を書き換えて保存したい。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。