perl – 你如何使用Twiggy服务器使用Plack :: Middleware :: Ses
发布时间:2020-12-16 06:20:53 所属栏目:大数据 来源:网络整理
导读:我有一个基于 Twiggy 的perl服务器: my $app = sub { my $req = Plack::Request-new(shift); ... };my $twiggy = Twiggy::Server-new(port = $port);$twiggy-register_service($app); 它工作正常,但现在我想添加会话管理(处理用户身份验证).我看到CPAN上有
我有一个基于
Twiggy 的perl服务器:
my $app = sub { my $req = Plack::Request->new(shift); ... }; my $twiggy = Twiggy::Server->new(port => $port); $twiggy->register_service($app); 它工作正常,但现在我想添加会话管理(处理用户身份验证).我看到CPAN上有一个 或者使用Plack :: Middleware :: Session,还有其他方法可以轻松获取和设置cookie值并维护会话状态以进行身份??验证吗? (用户请求的每个页面加载都在服务器的新分支中处理.) 解决方法
你可以将它串在一起. Plack :: Builder的构建器功能将您的应用程序包装在中间件(或几个)中.然后你将它作为一个新的应用程序传递给Twiggy.
use Plack::Builder; use Twiggy::Server; my $app = sub { my $env = shift; my $req = Plack::Request->new($env); my $session = $env->{'psgix.session'}; return [ 200,[ 'Content-Type' => 'text/plain' ],[ "Hello,you've been here for ",$session->{counter}++,"th time!" ],]; }; $app = builder { enable 'Session',store => 'File'; $app; }; my $twiggy = Twiggy::Server->new(port => 3000); $twiggy->register_service($app); AE::cv->recv; 请注意,构建器将返回一个新的应用程序,但除非您指定它,否则它不会以$app结尾.您也可以将构建器放入register_service,如下所示: my $twiggy = Twiggy::Server->new(port => 3000); $twiggy->register_service(builder { enable 'Session',store => 'File'; $app; }); 或者你当然可以摆脱Twiggy :: Server并使用twiggy运行twiggy命令行工具或plackup. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |