session - Phoenix框架的Plug.Conn中assign和put_session有什么区别?

标签 session elixir phoenix-framework

文档 ( https://hexdocs.pm/plug/Plug.Conn.html ) 命名了两个允许将键值对存储在 conn 中的函数。

assign(conn, key, value)

Assigns a value to a key in the connection


put_session(conn, key, value)

Puts the specified value in the session for the given key



这两个函数有什么区别?

最佳答案

基本上assign仅适用于特定连接 - Plug.Conn 结构 - 这意味着该值将随着请求的结束而消失 - 因为 conn 也会在请求/响应周期结束时消失。

session 生命周期更长,它存储在 cookie 或 ets 中。多亏了你保持例如。有关跨请求成功登录的用户的数据。

特尔;博士:
assign适用于每个请求,并在请求周期结束后消失。
put_session在 session 中插入一个值,它在 session 被清除/过期之前一直可用。

关于session - Phoenix框架的Plug.Conn中assign和put_session有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46502455/

相关文章:

asp.net - Asp.Net 4.0 的 Internet Explorer 11 session 问题

c# - 将 session 转换到对象

java - session 管理-jsp中 session 不会自动销毁

pattern-matching - 如何使用模式匹配在 Phoenix Controller 测试中断言两个映射

erlang - 为什么 Elixir/Erlang 中的数据共享不适用于两个映射中的同一个元组

internationalization - I18n 分段路由器 Phoenix

php - 将 PHP 重定向到登录页面,而不是强制登录

odbc - 如何通过 ODBC 从 Elixir 中选择数据?

datetime - 在Ecto.DateTime和DateTime之间转换

elixir - get_in 访问行为药剂的可选默认值