LoginSignup
1
0

More than 5 years have passed since last update.

Rails チュートリアル メモ 第9章

Posted at

メモ

  • 実装の方針は、ID/PW による認証とほぼ同じ
    • フォームで ID/PW を送信する代わりに、Cookie でID/トークン を送信する
    • PW 同様、トークンもそのまま DB には入れず、ハッシュ化して保存する

  • Active Record が強力すぎて忘れがちだが、Model も単なるクラスなので、attr_accessor でインスタンス変数のゲッタ/セッタが定義できる
  • これで、password のように remember_token を User インスタンス上で扱えるようにする
  • ようするに、チュートリアル内で「仮想的な属性」と呼ばれていたものは、単に「DB 上に存在しない」というだけで、ruby 的には紛れもないメンバー変数の1つ

  • DB には xxx_digest というカラムはあるが、xxx というカラムはない
    • なので、保存したユーザーを検索してきて xxx を調べても、入っているのは nil である
  • しかし、DB に xxx_digest を保存するためには、まず xxx がインスタンスに設定されている必要がある
    • なので、DB に保存する瞬間だけは、xxx を調べると nil でないものが入っている

  • cookies.permanent.signed[:user_id]
  • id = cookies.signed[:user_id]

  • current_user メソッドが複雑になって(責任範囲が広がって)つらくなってきた
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0