在我的凤凰项目中,我在控制器中有以下操作,负责注销用户:
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消息。我该如何解决这个问题?
答案 0 :(得分:7)
使用clear_session/1
代替configure_session/2
。在:drop
上使用configure_session/2
将完全删除会话Cookie,并且不会随响应一起发送Cookie。
clear_session/1
将从会话中删除所有密钥,但将会话cookie保持发送给客户端。因此,您可以在清除会话cookie后将put_flash
添加到会话cookie中。