2016-03-22 16 views
0

私はサインインコントローラを作っています。セッションはエリクシールフェニックスに保存されていません

私は、次のようなセッションを設定します。

conn = put_session(conn, :user_id, user.id) 
IEx.pry 
redirect conn, to: account_path(conn, :show) 

それは、私がオンラインでCONNを印刷するとき、私たちは私たちにリダイレクト次のコントローラに続いて

... 
:plug_session => %{"user_id" => 6}, :plug_session_fetch => :done, 
... 

を得るてこライン上に設定して見えますget

get_session(conn, :user_id) => nil 

応答が含まれているため、サインインコントローラの302がセッションクッキーを設定しているようです

set-cookie:_rebirth_key=g3QAAAABbQAAAAd1c2VyX2lkYQY=--KJ9iow5QUIqw1ggyPla--EGp-dY=; path=/; HttpOnly 

セッションを持続させるにはどうすればよいですか?

ありがとうございます!

答えて

2

私は確信していませんが、私はfetch_sessionがセッションから値を取得する正しい関数ではないかもしれないと思います。代わりに

get_session(conn, :user_id) 

を試してください。

+0

詳細を説明します。 'put_session'はキーに指定された値を追加し、' get_session'はそのキーによってその値を返します。ソース:[get_session docs](https://hexdocs.pm/plug/Plug.Conn.html#get_session/2) 'fetch_session'は、セッションストアまたはクッキーからセッションをフェッチします。 – dannypaz

+0

私の悪い、私はget_session、奇妙なタイプミスを使用しました。編集されました。 –