The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Apache2::Controller::Auth::OpenID - OpenID base for Apache2::Controller::Dispatch

SYNOPSIS

 # vhost.conf
 <Perl>
    my $openid_cache = '/dev/shm/myapp_openid_cache';
    mkdir $openid_cache if !-d $openid_cache;
    chown $EUID, $EGID, $open_id_cache
        || die "failed to `chown $EUID $EGID $openid_cache`";
 </Perl>
 
 <Location /myapp>
     SetHandler modperl
     PerlOptions +SetupEnv
     PerlInitHandler MyApp::Dispatch
 </Location>

 # lib/MyApp/Dispatch:
 package MyApp::Dispatch;

 use base qw(
     Apache2::Controller::Dispatch
     Apache2::Controller::Session::Cookie
     Apache2::Controller::Auth::OpenID
 );

 our %dispatch_map = (
     foo        => 'MyApp::C::Foo',
     login      => 'MyApp::C::Login',  # 'login' url required
 );

 # implement the following methods in your dispatch class.

 # get_openid_url(): get the openid_url of user.
 # this example gets it out of a cookie, but you may have another
 # mechanism, for instance, maybe you have it stashed in the
 # session database store

 sub get_openid_url {
     my ($self) = @_;
     my $cookies = $self->get_cookies();
     my $cookie_openid_url = $cookies->{'openid_url'};
     my $openid_url = $cookie_openid_url ? $cookie_openid_url->value : undef;
     return $openid_url;
 }

 # is_logged_in(): is the user logged in?
 
 sub is_logged_in

 1;

DESCRIPTION

Implements a verify_auth() method for Apache2::Controller::Dispatch that uses OpenID.

METHODS

verfiy_auth

verify_auth() implements the auth check for a module based on Apache2::Controller::Dispatch.

AUTHOR

Mark Hedges, <hedges at scriptdolphin.org>

COPYRIGHT & LICENSE

Copyright 2008 Mark Hedges, all rights reserved.

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