Add support for logging in via a Google account

The required configuration in hydra.conf:

  enable_google_login = 1
  google_client_id = 238429sdjkds....apps.googleusercontent.com

and optionally persona_allowed_domains to restrict to one or more
domains.
This commit is contained in:
Eelco Dolstra
2016-01-13 17:32:52 +01:00
parent f11ce7e219
commit 5a580b1bb2
7 changed files with 227 additions and 123 deletions

View File

@ -14,10 +14,12 @@ use JSON;
# Put this controller at top-level.
__PACKAGE__->config->{namespace} = '';
sub noLoginNeeded {
my ($c) = @_;
return $c->request->path eq "persona-login" ||
$c->request->path eq "google-login" ||
$c->request->path eq "login" ||
$c->request->path eq "logo" ||
$c->request->path =~ /^static\//;
@ -35,7 +37,6 @@ sub begin :Private {
$c->stash->{tracker} = $ENV{"HYDRA_TRACKER"};
$c->stash->{flashMsg} = $c->flash->{flashMsg};
$c->stash->{successMsg} = $c->flash->{successMsg};
$c->stash->{personaEnabled} = $c->config->{enable_persona} // "0" eq "1";
$c->stash->{isPrivateHydra} = $c->config->{private} // "0" ne "0";
@ -69,6 +70,7 @@ sub begin :Private {
}
}
sub deserialize :ActionClass('Deserialize') { }