[Warszawa-pm] LoginSimple na PSGI

Zbigniew Lukasiak zzbbyy w gmail.com
Sob, 12 Lut 2011, 17:05:33 PST


Hej!

Co myślicie o czymś takim?

Załączam pierwszy eksperyment w tym kierunku - czyli dwie Aplikacje na
Placka (LoginApp i LogoutApp) i prosta aplikacyjke która je
wykorzystuje.

Poniżej jak to działa:

package main;
#use LoginApp;
#use LogoutApp;
use Plack::Builder;

sub check_pass {
    my( $username, $pass ) = @_;
    if( $username eq $pass ){
        return 0, $username;
    }
    else{
        return 'Wrong username or password';
    }
}

builder {
    enable 'Session';
    mount '/login' => LoginApp->new( check_pass => \&check_pass )->to_app;
    mount '/logout' => LogoutApp->new()->to_app;

Czyli potrzebny jest callback do sprawdzania hasła - przekazujemy to
do LoginApp i montujemy ją pod adresem /login.  Pod /logout
odpowiednio LogoutApp.

Całość działa tak, że po zalogowaniu przenosi nas na stronę z której
weszliśmy do /login i to działa zarówno w przypadku gdy przechodzimy
przez linka (jak w załączonym kodzie) jak i jeśli ze strony
wymagającej loginu zrobimy redirecta do /login i zapiszemy adres na
który trzeba wrócić w sesji (pod redir_to) - na przykład tak:
$env->{'psgix.session'}{redir_to} = $env->{PATH_INFO};

Pozdrawiam,
Zbyszek


Więcej informacji o liście Warszawa-pm