2016-03-22 8 views
0

Ich mache eine Signin-Controller.Session nicht speichern in Elixir Phoenix

stelle ich die Sitzung als solche:

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

Es ist, als auf der hebeln Linie dürfte sich, wenn ich den Anschl drucke ich bekommen

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

Dann in der nächsten Steuerung, die wir zu uns umleiten get

get_session(conn, :user_id) => nil 

Die 302 von der Signin-Controller scheint einen Sitzungscookie als Antwort enthalten

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

Wie mache ich die Sitzung bestehen?

Danke!

Antwort

2

Ich bin mir nicht sicher, aber ich denke, fetch_session ist möglicherweise nicht die richtige Funktion, um den Wert aus der Sitzung zu erhalten. Versuchen Sie

get_session(conn, :user_id) 

stattdessen.

+0

Um zu erarbeiten. 'put_session' fügt einen bestimmten Wert für einen Schlüssel hinzu,' get_session' gibt diesen Wert mit seinem Schlüssel zurück. Quelle: [get_session docs] (https://hexdocs.pm/plug/Plug.Conn.html#get_session/2). 'fetch_session' ruft die Sitzung vom Sitzungsspeicher oder Cookie ab. – dannypaz

+0

Mein Schlechter, ich benutzte get_session, seltsamer Tippfehler. Bearbeitet. –

Verwandte Themen