Terence Denzil Monteiro > Authen-UserVerify-0.075 > Authen::UserVerify

Download:
Authen-UserVerify-0.075.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.075   Source  

NAME ^

Authen::UserVerify - Generate and verify unique codes to be used to authenticate users one time.

DESCRIPTION ^

Caters to various situations where users need to be authenticated without a password like:

1. Verify user email address
2. Set first-time user password
3. Reset password via email
4. Confirm users registration
5. Get user details first time

The module is generic and framework independent and can be used in any Perl based application like CGI, Catalyst, etc. Keys are SHA1 encrypted so the generated code cannot be obtained even if access to the storage is available.

EXAMPLE ^

Generating the code:

    # Getting a code
    my $user = "terence"
    my $email = "..";
    my $reg = Authen::UserVerify->new(file => "/tmp/myapp_userinfo");
    my $code = $reg->add("CONFIRM_REG", $user, $email);
    my $url = $curr_url . "?code=$code";
    # mail url to user

Verifying the code:

    # Read $code from url
    if ($reg->has($code)) { # Verifying the code
        my ( $type, $user, $email ) = $reg->get($code);
        if ( "CONFIRM_REG" eq $type ) {
            $reg->delete($code); # invalidate the code
            init_session($user);
            show_reg_form();
        }
    } else {
        # The code is invalid
    }

The above example shows how the module can be used to let users confirm their registration. A context string CONFIRM_REG is used to indicate that the context is to confirm user registration. This prevents misuse of the code for a different context if you are using the same storage for different contexts.

METHODS ^

new

Create a new Authen::UserVerify object

get

Fetch user info for the given code

add

Add the user entry

has

Check if the code is present

delete

Remove the entry

CAVEATS ^

Multi-line data (with newlines in between) cannot be added

AUTHOR ^

Terence Monteiro <terencemo@cpan.org>.

CREDITS ^

Nivedita Mukherjee, for testing out concepts in a CGI application

Alok Sharma, for reviewing the code

Ricardo Signes and Stephan for suggestions on #email at irc.perl.org

LICENSE ^

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

syntax highlighting: