[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