文档(https://hexdocs.pm/plug/Plug.Conn.html)列出了两个允许在conn
中存储键值对的函数
assign(conn, key, value)
为连接中的键指定值
put_session(conn, key, value)
将指定值放入给定键的会话中
这两个功能有什么区别?
答案 0 :(得分:13)
基本上assign
仅适用于特定连接 - Plug.Conn结构 - 这意味着在请求/响应周期结束时,该值将随着请求的结束而消失 - 因为conn也会死亡
会话的寿命更长,并且存储在cookie或ets中。多亏了你保持eg。有关跨请求成功登录用户的数据。
TL; DR:
assign
适用于每个请求,并在请求周期结束后消失。
put_session
在会话中插入一个值,直到会话清除/过期才可用。