Skip to content

Instantly share code, notes, and snippets.

@shohey1226
Last active December 16, 2015 17:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shohey1226/5471789 to your computer and use it in GitHub Desktop.
Save shohey1226/5471789 to your computer and use it in GitHub Desktop.
package Homenotes;
use Mojo::Base 'Mojolicious';
use Mojolicious::Plugin::Web::Auth;
use Plack::Session;
use Data::Dumper;
use FindBin qw($Bin);
sub startup {
my $self = shift;
# Config
my $config = $self->plugin('Config', {file => "$Bin/../etc/homenotes.conf"});
# Twitter
$self->plugin('Web::Auth',
module => 'Twitter',
key => $config->{twitter_consumer_key},
secret => $config->{twitter_consumer_secret},
on_finished => sub {
my ( $c, $access_token, $access_secret, $ref ) = @_;
my $session = Plack::Session->new( $c->req->env );
$session->set( 'access_token', $access_token );
$session->set( 'access_token_secret', $access_secret );
$session->set( 'screen_name', $ref->{screen_name} );
$session->set( 'user_id', $ref->{id} );
},
);
# Github
$self->plugin('Web::Auth',
module => 'Github',
key => $config->{github_consumer_key},
secret => $config->{github_consumer_secret},
on_finished => sub {
my ( $c, $access_token, $ref ) = @_;
$session->set( 'access_token', $access_token );;
$session->set( 'screen_name', $ref->{login} );
$session->set( 'user_id', $ref->{id} );
},
);
# Router
my $r = $self->routes;
push @{$r->namespaces}, 'Homenotes::Controller';
# Normal route to controller
$r->get('/')->to('index#top');
$r->get('/auth/*method/callback')->to('index#callback');
$r->get('/auth/logout')->to('index#logout');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment