put_flash不适用于configure_session(drop:true)

时间:2017-03-20 17:30:56

标签: elixir phoenix-framework

在我的凤凰项目中,我在控制器中有以下操作,负责注销用户:

  def signout(conn, _params) do
    conn
    |> configure_session(drop: true)
    |> put_flash(:info, "Signed out successfully!")
    |> redirect(to: project_path(conn, :index))
  end

问题是,当我使用configure_session(drop: true)时,屏幕上没有出现flash消息。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:7)

使用clear_session/1代替configure_session/2。在:drop上使用configure_session/2将完全删除会话Cookie,并且不会随响应一起发送Cookie。

clear_session/1将从会话中删除所有密钥,但将会话cookie保持发送给客户端。因此,您可以在清除会话cookie后将put_flash添加到会话cookie中。