Rails]今回は日本語化された「Devise」でログイン機能を作ります。アカウントを仮登録するとシステムからメールが送信されて、そのリンクをクリックしたら本登録という設定にします。ログインする際にアカウントの認証に3回失敗したらアカウントをロックするようにします。このロック解除にもメール経由の解除が必要とします。これによりブルートフォース攻撃(総当たり攻撃)の対策にもなります。Deviseでは各種操作にメールを経由しない方法もありますが、それだとセキュリティ的に弱いのでメール経由の設定を推奨します。※Deviseの機能テキスト形式だと長いリンクが途切れる場合があるのでHTMLメールです。(任意)上記はSSL/TLS対応の独自ドメインのメールサーバー構築です。SMTPSサーバー(465ポート)のユーザー名、パスワードが用意されていてメールが送信出来れば、構築しなくても良いです。testを使用しない。モデル/コントローラー/ビューの生成Catモデル、catsコントローラー/ビューを生成します。Deviseのi18n(国際化)対応のViewを生成app/views/deviseが生成されます。Deviseの日本語の言語ファイルの生成config/locales/devise.views.ja.ymlが生成されます。ja初期状態のまま実行すると、次のようなエラーが表示されます。ja.activerecord.errors.models.user.attributes.password.blank次のコードに置き換えてください。※不足分を私が追加しています。"を入力してください。"は既に使用されています。"を入力してください。"の文字数が短すぎます。"はパスワードと一致しません。"を入力してください。"次のリンクでメールアドレスの確認が完了します。"誰かがパスワードの再設定を希望しました。次のリンクでパスワードの再設定が出来ます。"あなたが希望したのではないのなら、このメールは無視してください。"上のリンクにアクセスして新しいパスワードを設定するまで、パスワードは変更されません。"アカウントのロックを解除するには下のリンクをクリックしてください。"ログイン失敗が繰り返されたため、アカウントはロックされています。Deviseのコントローラーをカスタマイズコントローラーをカスタマイズする場合のみです。UserモデルUserモデルを生成します。timeoutable」を追加します。ログイン中にユーザーの信頼性を検証するために、パスワードをハッシュしてデータベースに保存します。認証は、POST要求またはHTTP基本認証の両方で実行できます。登録プロセスを通じてユーザーのサインアップを処理し、ユーザーがアカウントを編集および削除できるようにします。ユーザーパスワードをリセットし、リセットの指示を送信します。保存されたCookieからユーザーを記憶するためのトークンの生成とクリアを管理します。電子メールとパスワードの検証を提供します。これはオプションであり、カスタマイズできるため、独自の検証を定義できます。本登録の確認用のメールを送信する。サインイン時にアカウントが既に認証されているかどうかを検証します。指定された回数のサインインに失敗すると、アカウントをロックします。電子メールを介して、または指定された期間後にロックを解除できます。指定された期間内にアクティブでなかったセッションを期限切れにします。サインインカウント、タイムスタンプ、およびIPアドレスを追跡します。OmniAuthサポートを追加します。TwitterやFacebookなどの認証。※今回はomniauthableは未使用です。マイグレーションファイル[db/migrate/20191130125007_devise_create_users.rb]全てのコメントを外します。マイグレーションの実行(テーブルの生成)usersテーブルが生成されます。10.2.2)以上にするか、データベースの文字コードをUTF8に変更して下さい。string型は255文字。Rails6以降のデフォルト文字コードはutf8mb4(1文字4バイト換算)です。utf8は1文字3バイト換算です。※外部メールサーバー利用時はセキュリティ的にSSL/TLSは必須。※25/587ポートだと認証時にユーザー名、パスワードが平文で流れます。ローカルのSMTPサーバーを利用する際は設定を変更して下さい。30.minutesDeviseの詳細設定はconfig/initializers/devise.rb※例えば、パスワードの長さはconfig.password_lengthで設定可能。(Devise公式)をご確認ください。(英文)アクセスこれで設定は終わりましたので、次のURLへアクセスします。http://localhost:3000/これ以後は参考程度です。テキスト形式のメールにするDeviseはHTMLメールをデフォルトで使用します。テキスト形式のメールに変更する設定はないようです。※ソースかコントローラーを弄れば可能?メーラー(メールソフト)によってはHTMLの一部をテキストで表示する機能があります。秀丸メールだと<a>タグのリンクは表示されないので、次のようにするとテキストでもリンクURLが表示されます。%></p>[変更前][変更後]コレをやるとHTML側の本文が不自然になるので各自で調整して下さい。(3)このブログについてオープンソースGitHubで複数のオープンソースを公開。Webアプリこのブログのマスターが作成した無料ツールです。(オープンソース)ブラウザで8/16/24/32bitの相互変換。Webの逆アセンブラブラウザでEXE/DLLファイルを逆アセンブルする※その他にも「プチラボ」でアプリを多数公開しています。3Dゲームこのブログのマスターが作成した無料ゲームです。短時間で遊べるファンタジーのオンラインRPG風ほのぼの癒し系のスマホアプリ※その他は「@ゲーム」で公開しています。※インストール不要でそのまま遊べます。スマートフォンこのブログのマスターが作成した無料アプリです。お主の画像減色お手軽にカメラの写真や画像を「高品質に減色」するお主は誰だ。(女性向け)ロボットこのブログのマスターが作成したロボットです。