現在ECサイトを作ろうとしていて、ゲストユーザーの扱いについて苦戦しています。
実現したいこととしては
- ログインしていなくても買い物ページへ行けて、カートに商品を入れたり減らしたりできる。
- 決済する段になったら、ログインしていなければログインする
ということです。
いろいろ調べてみて、おそらくゲストユーザー・ログインユーザーに関係なく、セッションにカートのIDを期限付きで保持しておくことで、実現できそうだなとは思い始めてきました。
しかし問題は、protect_from_forgery用のセッションとは別にトークンを作ったほうがいいかよくわかっていないということです
私は今railsのセッションをredisで管理しています
ruby
1# config/environments/development.rb 2 3config.session_store :redis_store, { 4 key: 'session_id', 5 servers: { 6 host: 'localhost', 7 port: 6379, 8 db: 0, 9 namespace: 'sessions' 10 }, 11 expire_after: 10.minutes 12 }
これをしないとprotect_from_forgeryに引っかかってしまうので…
そしてこの設定をしているので、すでに接続したときにはこのトークンがcookiesに入っています。
質問というのは
・このトークンはあくまでもデフォルトのものだからほかの用途につかうべきではないのか?
・もし使えるのならば、このトークンをどのように活用していけばいいのか(protect_from_forgeryがほとんど勝手にやってくれてる仕様なので、活用の仕方がよくわからない)
ということです
よろしくお願いいたします
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。