The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

CGI::Session::Auth::Mouse::Role - Role for authentication of CGI::Session Module

VERSION

This document describes CGI::Session::Auth::Mouse::Role version 0.0.3

SYNOPSIS

    BEGIN {
        package MyApp::Auth;

        use Mouse;

        with qw/CGI::Session::Auth::Mouse::Role/;

        has '_user_key' => (
            is  => 'rw',
            isa => 'Str',
        );

        has 'user_info' => (
            is => 'ro',
            isa => 'HashRef',
            default => sub {
                return {
                    hoge => {
                        password => 'huga',
                        age      => 20,
                        favorite => 'orange',
                    },
                    moge => {
                        password => 'moga',
                        age      => 30,
                        favorite => 'apple',
                    }
                };
            },
        );

        sub login {
            my $self = shift;
            my ( $username, $password ) = @_;
            if ( exists $self->user_info->{$username} ) {
                $self->user_key($username);
                return 1 if ( $self->user_info->{$username}->{password} eq $password );
            }
            return;
        }

        sub load_profile {
            my ( $self, $user_key ) = @_;

            my $info = $self->user_info->{ $user_key };

            delete $info->{password};
            return $info;    # hashref
        }

        sub user_key {
            my $self = shift;
            return $self->_user_key || 0;
        }
    }
    my $auth = MyApp::Auth->new(
        cgi     => new CGI,
        session => new Session,
    );
    $auth->authenticate();
    if ( $auth->logged_in ) {
        ## show secret page
    }
    else {
        ## show login page
    }

SAMPLE HTML

    <form method="POST" action="sample.cgi">
        <input type="text" name="login_username" />
        <input type="password" name="login_password" />
        <input type="submit" value="submit" />
    </form>

METHODS

authenticate

authenticate method

logged_in

Returns a boolean value representing the current visitors authentication status.

logout

logout method

BUGS AND LIMITATIONS

Please report any bugs or feature requests to bug-cgi-session-auth-mouse-role@rt.cpan.org, or through the web interface at http://rt.cpan.org.

DEPENDENCIES

Mouse Mouse::Role CGI::Session

SEE ALSO

CGI::Session CGI::Session::Auth Mouse Mouse::Role

AUTHOR

<noblejasper> <<nobjas@gmail.com>>

LICENCE AND COPYRIGHT

Copyright (c) 2009, <noblejasper> <<nobjas@gmail.com>>. All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.