есть:
CentOS4
Bind9
perl5.8.8
apache20
Catalyst последней версии и 5.80004
с начала поставил первую версию Catalyst самую новую, и остальные последние модули которые там
...c сессиию и авторизацию с DBI
все работает
как только-то написал Login.pm
Код: Выделить всё
# Attempt to log the user in
if (
$c->authenticate(
{
username => $username,
password => $password
}
)
)
{
# If successful, then let them use the application
$c->response->redirect( $c->request->referer() or '/' );
#print '1';
$c->detach();
}
Код: Выделить всё
package Flirt18::Controller::Login;
use Moose;
use namespace::autoclean;
use Data::Dumper;
BEGIN {extends 'Catalyst::Controller'; }
=head1 NAME
Flirt18::Controller::Login - Catalyst Controller
=head1 DESCRIPTION
Catalyst Controller.
=head1 METHODS
=cut
=head2 index
=cut
sub index :Path :Args(0) {
my ( $self, $c ) = @_;
# $c->response->body('Matched Flirt18::Controller::Login in Login.');
# $c->stash->{template} = 'index.tt';
# print Dumper $c;
# Get the username and password from form
# my $username = $c->request->params->{username} || "";
# my $password = $c->request->params->{password} || "";
#print '666';
my $username = "test02";
my $password = "mypass";
#print "666-".$c->user_exists()."-666";
#print Dumper $c->authenticate;
$c->authenticate(
{
username => $username,
password => $password
}
);
print Dumper $c;
#print "666-".$c->user_exists()."-666";
#return;
# If the username and password values were found in form
# use Data::Dumper;
# print Dumper($c->request->{headers});
if ( $username && $password ) {
# Attempt to log the user in
if (
$c->authenticate(
{
username => $username,
password => $password
}
)
)
{
# If successful, then let them use the application
# $c->response->redirect( $c->request->referer() or '/' );
#print '1';
$c->detach();
}
else {
#print '2';
}
}
#print '66';
}
=head1 AUTHOR
root
=head1 LICENSE
This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
__PACKAGE__->meta->make_immutable;
1;
при авторизации, сессия идет в базу в табилу - там все нормально...
но в куки, тоже вродебы идет.. но там ее нету...
я написал бот на LWP который сохраняет cookies
зашел на этот сайт на этом сервере и cookies НЕ сохранилась...
а как только заходил на другой рубочий с Catalyst,то cookies сохранялась...
значит: проблема в сохраниении cookies в браузере вместе из сессиями...
видно в html отладке, что Catalyst отправляет сессии. в cookie! но в браузере ее нету!!
Код: Выделить всё
},
'_children' => [],
'_depth' => 0,
'_uid' => 'begin1',
'_height' => 1
}, 'Tree::Simple' ),
bless( {
'_parent' => $VAR1->{'stats'}{'tree'},
'_width' => 1,
HTTP/1.0 200 OK
Connection: close
Date: Sat, 30 Oct 2010 06:09:30 GMT
Set-Cookie: fl_session=d80bfc30b1d70493423cf225ae1bee91a0c64ecb; path=/; expires=Sat, 30-Oct-2010 07:09:30 GMT
Status: 200
X-Catalyst: 5.80004
на другом рабочем сервере такой проблемы нету, и взял просто сокпировал весь каталог модулей со cpan -
это /Catalyst и catalyst.pm
т.е. скопировал модули с ТОЧНО рабочего сервера Catalysta, и опять авторизация не работает, не хочет сохранять куки в браузере!
там правда perl5.8.8, но думаю не важно...
еще:так же написано, что Catalyst поддерживается с perl5.8.8
и на другом сервер у меня apache22 (не apache20 )
как узнать почему браузер не хочет сохранять cookies?
может есть еще какая-то причина? возможно в настройке сервера?
повторюсь, я скопировал полностью с 100% рабочего сервера каталог /Catalyst и catalyst.pm - это ошибка не поменялась...
(разница в версиях perl5.8.9 ( 100% ) perl5.8.8 (там где делаю) )