Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 如何删除Phoenix会话?_Elixir_Phoenix Framework - Fatal编程技术网

Elixir 如何删除Phoenix会话?

Elixir 如何删除Phoenix会话?,elixir,phoenix-framework,Elixir,Phoenix Framework,我要通过考试。它很好地解释了如何使用put\u session将数据绑定到会话,然后使用get\u session获取值,但它没有说明如何删除用户的会话 从指南中: defmodule hellophenix.PageController do 使用菲尼克斯控制器 def索引(conn,_参数)do conn=put_会话(conn,:message,“我们刚刚在会话中设置的新内容”) 消息=获取会话(连接:消息) 文本连接,消息 结束 结束 我想你要找的是: 在以下目录中找到它: 清除整个会

我要通过考试。它很好地解释了如何使用
put\u session
将数据绑定到会话,然后使用
get\u session
获取值,但它没有说明如何删除用户的会话

从指南中:

defmodule hellophenix.PageController do
使用菲尼克斯控制器
def索引(conn,_参数)do
conn=put_会话(conn,:message,“我们刚刚在会话中设置的新内容”)
消息=获取会话(连接:消息)
文本连接,消息
结束
结束

我想你要找的是:

在以下目录中找到它:

清除整个会话

此函数用于从会话中删除每个密钥,清除 会议

请注意,即使使用了clear_session/1,会话仍会被发送 给客户。如果会话被有效地中断, configure_session/2应与:drop选项设置为true一起使用


您可以在
会话控制器中放置类似的内容:

def delete(连接)do
康涅狄格州
|>清除会话()
|>重定向(到:页面路径(连接:索引))
结束

并在您的
web/router.ex

中为此添加一条路由。如果要删除特定会话,应使用:

conn |> fetch_session |> delete_session(:session_to_delete)
更多信息请点击此处:

仅用于删除您之前创建的会话,然后重定向到登录或其他

例如:

# In this example I use a log_out link to delete session when user click in it.
def log_out(conn, _params) do
    conn
    |> delete_session(:session_name)
    |> redirect(to: Routes.auth_path(conn, :login))
end

重要的是将修改后的
conn
返回,并取下您放在其中的钥匙。

谢谢,我不知道要带什么<代码>清除会话
配置会话
。也不确定,但
conn |>配置会话(:drop)
似乎完全破坏了它,所以如果您想更安全一些,只要尝试一下,我就会得到异常:
(Protocol.undeinderror)协议访问未为:drop实现,仅支持nil atom
drop会话将完全禁用它,迫使浏览器删除cookie。clear_会话只是要清除会话中的数据,cookie继续在那里。如何检查会话是否为nil/空
# In this example I use a log_out link to delete session when user click in it.
def log_out(conn, _params) do
    conn
    |> delete_session(:session_name)
    |> redirect(to: Routes.auth_path(conn, :login))
end