ポテパンキャンプ Rails修行その3 〜ログイン機能〜
今日も3日目が無事に終わりましたぁ!!
本日はログインログアウト周りをやりました。
- ログイン機能
まずは「ログイン機能」です! 要点をまとめていきます。Railsチュートリアルで言う8章9章あたりですね ↓↓ ↓↓
まずはコントローラーの作成。Progateをやっているときはどのタイミングでコントローラー作るんだ、、なんでこの時に作るんだ、、と思っていました。明確な理由はあるとは思いますが、僕はやっていくうちに感覚で少しずつわかってきました。笑
今回はログインとログアウトだけの実装です。チュートリアルではメールアドレスとパスワードをデータベースと一致したらログインでしたが、今回はユーザーネームとパスワードの一致でログインできるようにしました!
まだまだこんなことしかできませんが少しずつアレンジを加えて行っております!
またその都度テストも自分の力で変更していくので自然にテストコードもしっかり目を通すようになるのでとても勉強になります。
次に大事になってくるのがログインしているユーザーとしていないユーザーで表示を変えると言うことです。具体的にしてない人にはログインリンクがありしてる人にはログアウトリンクがあるみたいな感じです。一見そんなことどうやるんだと感じますが、こんな時にはほとんど条件分岐を使うのでそこまで難しくありません。
こんな感じで「if文を使えば大丈夫です。」その中でぶくなりに難しいと感じる部分がこの中のメソッドはどこに定義するんだ?と言うことです。まだそこがあやふやな部分が僕の中ではあるので理解あるのみです。
9章で実装していく部分が「remember_me」です!これはセッションがすぐにきれていちいちユーザーにログインさせていたら、減っていくのは目に見えています。そこでユーザーがログアウトを選択するまでは永続的にログイン状態にします。と言う機能です。
画像的にはこんな感じですね。クッキーの中にはリメンバートークンと言うハッシュを渡しておきリメンバーダイジェストにもハッシュを渡しておいて認証する流れです。
続きを読む