| Catalyst-Plugin-Authentication-Credential-JugemKey documentation | Contained in the Catalyst-Plugin-Authentication-Credential-JugemKey distribution. |
Catalyst::Plugin::Authentication::Credential::JugemKey - JugemKey authentication plugin for Catalyst
Version 0.04
# load plugin and setup
use Catalyst qw(
Authentication
Authentication::Credential::JugemKey
Session
Session::Store::FastMmap
Session::State::Cookie
);
__PACKAGE__->config->{authentication}->{jugemkey} = {
api_key => 'your api_key',
secret => 'your shared secret',
perms => 'permission',
};
# in controller
# redirect login url
sub login : Path('/jugemkey/login') {
my ( $self, $c ) = @_;
$c->res->redirect(
$c->authenticate_jugemkey_url({
callback_url => 'http://your_callback_url/jugemkey/auth',
param1 => 'value1',
param2 => 'value2',
})
);
}
# callback url
sub auth : Path('/jugemkey/auth') {
my ( $self, $c ) = @_;
if ( my $user = $c->authenticate_jugemkey_get_token ) {
# login successful
$c->session->{name} = $user->name;
$c->session->{token} = $user->token;
$c->res->redirect( $c->uri_for('/') );
}
else {
# something wrong
}
}
Creates login url.
Exchange frob for token and JugemKey user name.
Gosuke Miyashita, <gosukenator at gmail.com>
Please report any bugs or feature requests to
bug-catalyst-plugin-authentication-credential-jugemkey at rt.cpan.org, or through the web interface at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Catalyst-Plugin-Authentication-Credential-JugemKey.
I will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc Catalyst::Plugin::Authentication::Credential::JugemKey
You can also look for information at:
http://annocpan.org/dist/Catalyst-Plugin-Authentication-Credential-JugemKey
http://cpanratings.perl.org/d/Catalyst-Plugin-Authentication-Credential-JugemKey
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Catalyst-Plugin-Authentication-Credential-JugemKey
http://search.cpan.org/dist/Catalyst-Plugin-Authentication-Credential-JugemKey
Copyright 2006 Gosuke Miyashita, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Catalyst-Plugin-Authentication-Credential-JugemKey documentation | Contained in the Catalyst-Plugin-Authentication-Credential-JugemKey distribution. |
package Catalyst::Plugin::Authentication::Credential::JugemKey; use warnings; use strict; our $VERSION = '0.04'; use WebService::JugemKey::Auth; use UNIVERSAL::require; use NEXT; sub setup { my $c = shift; my $config = $c->config->{authentication}->{jugemkey} ||= {}; $config->{jugemkey_object} ||= do { ( $config->{user_class} ||= 'Catalyst::Plugin::Authentication::User::Hash' )->require; my $api = WebService::JugemKey::Auth->new({ api_key => $config->{api_key}, secret => $config->{secret}, }); $api->perms( $config->{perms} ); $api; }; $c->NEXT::setup(@_); } sub authenticate_jugemkey_url { my ($c, $params) = @_; $c->config->{authentication}->{jugemkey}->{jugemkey_object}->uri_to_login($params); } sub authenticate_jugemkey_get_token { my $c = shift; my $config = $c->config->{authentication}->{jugemkey}; my $jugemkey = $config->{jugemkey_object}; my $frob = $c->req->params->{frob} or return; if ( my $user = $jugemkey->get_token($frob) ) { $c->log->debug("Successfully get token of user '$user->name'.") if $c->debug; my $store = $config->{store} || $c->default_auth_store; if ( $store and my $store_user = $store->get_user( $user->name, $user ) ) { $c->set_authenticated($store_user); } else { $user = $config->{user_class}->new($user); $c->set_authenticated($user); } return $user; } else { $c->log->debug( sprintf "Failed to authenticate jugemkey. Reason: '%s'", $jugemkey->errstr, ) if $c->debug; return; } }
1; # End of Catalyst::Plugin::Authentication::Credential::JugemKey