X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2Fstemmaweb.git;a=blobdiff_plain;f=lib%2Fstemmaweb%2FController%2FUsers.pm;h=61ccbbc4504800b924674c7955b353a591f4d2bd;hp=8a5c6ac97bb4a1d058e233809186a1ae0fbd32d8;hb=85990daf0e04461abd1b789fb283848dd583c134;hpb=b74843e50e3c2c01f3ae8c3592fbedcbeb1cd858 diff --git a/lib/stemmaweb/Controller/Users.pm b/lib/stemmaweb/Controller/Users.pm index 8a5c6ac..61ccbbc 100644 --- a/lib/stemmaweb/Controller/Users.pm +++ b/lib/stemmaweb/Controller/Users.pm @@ -2,6 +2,13 @@ package stemmaweb::Controller::Users; use Moose; use namespace::autoclean; +use Google::JWT; + +use JSON::MaybeXS; +use JSON::WebToken; + +use MIME::Base64; + BEGIN {extends 'CatalystX::Controller::Auth'; } with 'Catalyst::TraitFor::Controller::reCAPTCHA'; @@ -47,7 +54,7 @@ sub index :Path :Args(0) { Logging in with openid/google requires two passes through the login action, on the 2nd pass the C value is passed in when the openid providing webserver links the user back to the stemmaweb -site. This adaption to the C action sets the realm we are +site. This adaptation to the C action sets the realm we are authenticating against to be C in this case. =cut @@ -75,8 +82,7 @@ before register => sub { ## When submitting, check recaptcha passes, else re-draw form if($c->req->method eq 'POST') { - if(!$c->forward('captcha_check')) { - + if(!$c->forward('captcha_check') || 0 ) { ## Need these two lines to detach, so end can draw the correct template again: my $form = $self->form_handler->new( active => [ $self->login_id_field, 'password', 'confirm_password' ] ); $c->stash( template => $self->register_template, form => $form ); @@ -86,6 +92,41 @@ before register => sub { } }; +before login => sub { + my ($self, $c) = @_; + + if ($c->req->params->{email} && $c->req->params->{id_token}) { + + $c->req->param( realm => 'google'); + + } +}; + +=head2 success + +A stub page returned on login / registration success. + +=cut + +sub success :Local :Args(0) { + my ( $self, $c ) = @_; + + $c->load_status_msgs; + $c->stash->{template} = 'auth/success.tt'; +} + +=head2 post_logout + +Return to the index page, not to the login page. + +=cut + +sub post_logout { + my( $self, $c ) = @_; + $c->response->redirect( $c->uri_for_action( '/index' ) ); + $c->detach; +} + =head1 AUTHOR A clever guy