21歳未経験からRailsエンジニアになるまで

21歳フリーターの僕がrailsエンジニアになるまでを自分なりに書いていくブログです。

ポテパンキャンプ Rails修行その3 〜ログイン機能〜

今日も3日目が無事に終わりましたぁ!!

本日はログインログアウト周りをやりました。

  1. ログイン機能 

まずは「ログイン機能」です! 要点をまとめていきます。Railsチュートリアルで言う8章9章あたりですね   ↓↓      ↓↓

railstutorial.jp

 まずはコントローラーの作成。Progateをやっているときはどのタイミングでコントローラー作るんだ、、なんでこの時に作るんだ、、と思っていました。明確な理由はあるとは思いますが、僕はやっていくうちに感覚で少しずつわかってきました。笑

今回はログインとログアウトだけの実装です。チュートリアルではメールアドレスとパスワードをデータベースと一致したらログインでしたが、今回はユーザーネームとパスワードの一致でログインできるようにしました!

f:id:yamasey712:20190724182136p:plain

まだまだこんなことしかできませんが少しずつアレンジを加えて行っております!

またその都度テストも自分の力で変更していくので自然にテストコードもしっかり目を通すようになるのでとても勉強になります。

次に大事になってくるのがログインしているユーザーとしていないユーザーで表示を変えると言うことです。具体的にしてない人にはログインリンクがありしてる人にはログアウトリンクがあるみたいな感じです。一見そんなことどうやるんだと感じますが、こんな時にはほとんど条件分岐を使うのでそこまで難しくありません。

f:id:yamasey712:20190724183001p:plain

こんな感じで「if文を使えば大丈夫です。」その中でぶくなりに難しいと感じる部分がこの中のメソッドはどこに定義するんだ?と言うことです。まだそこがあやふやな部分が僕の中ではあるので理解あるのみです。

9章で実装していく部分が「remember_me」です!これはセッションがすぐにきれていちいちユーザーにログインさせていたら、減っていくのは目に見えています。そこでユーザーがログアウトを選択するまでは永続的にログイン状態にします。と言う機能です。

f:id:yamasey712:20190718183258p:plain

画像的にはこんな感じですね。クッキーの中にはリメンバートークンと言うハッシュを渡しておきリメンバーダイジェストにもハッシュを渡しておいて認証する流れです。

 3日目の感想

やはり難しい。と言うのが感想です。テストコードを書いてエラーが出るのに少しびびりながらもエラーが出たら一つづつ対処することで次そのエラーが出た時に「あれ!これ見たことあるし解決したやつだ!」となるタイミングが少しずつ増えて行ってるのでそこにも楽しさや達成感が感じられます。前の日より着実に出来上がって行ってるのもまたやりがいです。4日目はプロフィールページやパスワード再設定のとこまで終わらせてしまいたいので頑張ります。