Страница 1 из 1

[Perl, Catalyst] браузер не сохраняет cookies с авторизации

Добавлено: 2010-10-30 10:29:14
ProFTP
есть очень странная ситуация, не знаю с чего начать, даже интеренсо узнать из-за чего такая проблема...

есть:
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 (там где делаю) )

Re: [Perl, Catalyst] браузер не сохраняет cookies с авториза

Добавлено: 2010-10-31 9:50:11
ProFTP
извините, все кто читал :)
проблема была в том что браузер был кривой, браузер opera9 глючила почему-то... (замечал что она на других сайтах, тоже, плохо работала...)