kouの技術的メモ

学習した内容の定着やアウトプット用に開設しました

成果物の作成5 新規ユーザー登録機能とセッションの実装

ユーザ登録周りは一回やっているので割とスムーズに作れました。

業務ではチーム開発になると思われるので、作業用ブランチからプルリクを出して、Githubでマージする、という手法を試したのですが、 途中ででやらかして、マージの時にコードが消えちゃうやらかしが発生して大分焦りました。。。

何とか元に戻す方法を調べて、無事復旧できました…これも勉強ですね。

一回学習した部分なので大まかなコーディングは覚えていますが、なんとなくの理解だった部分が更に分かって楽しいです。

例えば永続的セッションの実装で以下の部分ですが

cookies.permanent.signed[:user_id] = user.idで

上のように暗号化され、永続化されたcookiesのユーザIDだけでも永続的ログインは成立しうるのですが、

更に暗号化された記憶トークンcookies[:remember_token]とデータベースのremember_digestとで認証チェックを行います。

cookiesのユーザIDと、cookiesの記憶トークンとで、2つの情報を認証に使っているのかというと

もしユーザーIDの認証だけだと万一悪意のある人にユーザーIDが盗まれた場合はログインできてしまうのです。

よってセキュリティ的にこうして2重のチェックを入れたほうがよりベターなので、このように実装します。