У меня есть на основе Starman сервер -Как вы используете Plack :: Middleware :: Session с сервером Starman?
#!/usr/bin/perl
use strict;
use warnings;
use Data::Printer;
use Plack::Builder;
my $app = sub {
my $env = shift;
my $session = $env->{'psgix.session'};
# Print environment variables
p($env);
return [
200,
[ 'Content-Type' => 'text/plain' ],
[ "Hello, you've been here for ", $session->{counter}++, "th time!" ],
];
};
my $default = sub {
my $env = shift;
p($env);
return [
'200', [ 'Content-Type' => 'text/html' ],
["Welcome to default page"],
];
};
builder {
mount "/validate" => builder {
enable "Middleware::Authentication"
enable "Session";
$app;
};
mount "/" => builder { $default };
};
Мой собственный промежуточного «Аутентификация» аутентификации пользователя и возвращает информацию сеанса (время истечения, ключ сеанса и т.д.) для управления сеансом, так как я могу использовать эти информацию в промежуточной среде сеанса?
Спасибо, jm666 за ваш ответ. Я искал сериализацию промежуточных продуктов, то есть после аутентификации пользователя из промежуточного ПО Auth он возвращает идентификатор сеанса (токен), время входа пользователя и т. Д., Которые я хочу использовать в промежуточном программном обеспечении Session для управления сеансом. Итак, как я могу передать выход одного промежуточного программного обеспечения другому. Этот подход в порядке? – CodeQuestor
@CodeQuestor Лучшее, что вы можете сделать, [поиск metacpan] (https://metacpan.org/search?q=Plack%3A%3AMiddleware%3A%3AAuth&size=500) для некоторых 'Plack :: Middleware :: Auth' модулей и проверить источники, как они используют промежуточное ПО Session.Я не уверен в 'session ID', потому что он генерируется самим промежуточным программным обеспечением Session, используя' Plack :: Session :: State' (где вы можете передать свой собственный код, что возвращает SID.) – jm666
Спасибо за указания jm666, позвольте мне попробовать подробнее об этом. – CodeQuestor