Maa*_*gon 10 session elixir phoenix-framework
文档(https://hexdocs.pm/plug/Plug.Conn.html)命名两个函数,允许在一个键值对中存储conn
assign(conn, key, value)
Run Code Online (Sandbox Code Playgroud)
为连接中的键分配值
put_session(conn, key, value)
Run Code Online (Sandbox Code Playgroud)
将指定值放在给定键的会话中
这两个功能有什么区别?
Pat*_*wak 16
基本上assign
只适用于特定连接 - Plug.Conn结构 - 这意味着在请求/响应周期结束时,该值将随着请求的结束而消失 - 因为conn也会死亡.
会话寿命更长,并存储在cookie或ets中.多亏了你保持eg.有关跨请求成功登录用户的数据.
TL; DR:
assign
适用于每个请求,并在请求周期结束后消失.
put_session
在会话中插入一个值,它在会话清除/过期之前可用.