Mojolicious::Sessions-基于签名Cookie的会话管理器
使用Mojolicious::Sessions;my$sessions=Mojolicious::sessions->new;$sessions->cookie_name('myapp');$sessions->default_expiration(86400);
Mojolicious::会话基于签名的Cookie管理会话Mojolicious公司。所有数据都用序列化Mojo::JSON和存储在客户端编码的Base64,但使用HMAC-SHA256签名防止不必要的更改。
Mojolicious::会话实现以下属性。
我的$domain=$sessions->cookie_domain;$sessions=$sessions->cookie_domain('.example.com');
会话cookie的域,默认情况下未定义。
我的$name=$sessions->cookie_name;$sessions=$sessions->cookie_name('session');
会话cookie的名称,默认为令人兴奋的
.
我的$path=$sessions->cookie_path;$sessions=$sessions->cookie_path('/foo');
会话cookie的路径,默认为/
.
我的$time=$sessions->default_expiration;$sessions=$sessions->default_expiration(3600);
会话从现在起的默认过期时间(秒),默认为3600
。将刷新每个请求的过期超时。将值设置为0
将允许会话持续到浏览器窗口关闭,但这可能会带来安全隐患。为了获得更多控制,您还可以使用到期
和到期
会话值。
#从现在起以秒为单位的到期日期(在请求之间持续)$c->会话(过期=>604800);#过期日期作为绝对纪元时间(仅对一个请求有效)$c->会话(过期=>时间+604800);#通过设置过去的到期日期删除整个会话$c->会话(过期=>1);
我的$cb=$sessions->反序列化;$sessions=$sessions->反序列化(子($bytes){…});
用于反序列化会话的回调,默认为Mojo::JSON中的“j”.
$sessions->反序列化(子($bytes){return{}});
我的$samesite=$sessions->samesite;$sessions=$sessions->samesite(“严格”);
在所有会话cookie上设置SameSite值,默认为拉克斯
。请注意,此属性是实验因为尽管大多数常用的浏览器都支持该功能,但除此之外还没有规范这张汇票.
#禁用SameSite功能$sessions->samesite(undef);
我的$bool=$sessions->secure;$sessions=$sessions->secure($bool);
在所有会话cookie上设置安全标志,以便浏览器仅通过HTTPS连接发送它们。
我的$cb=$sessions->serialize;$sessions=$sessions->序列化(子($hash){…});
用于序列化会话的回调,默认为Mojo::json中的“encode_json”.
$sessions->serialize(子($hash){return“”});
Mojolicious::会话从继承所有方法Mojo::基础并实现了以下新功能。
$sessions->load(Mojolicious::Controller->new);
从签名的cookie加载会话数据。
$sessions->store(Mojolicious::Controller->new);
将会话数据存储在签名的cookie中。
Mojolicious公司,Mojolicious::指南,https://mojolicious.org.