This looks like a bug in the module. The is_success method returns a
boolean value, not the result (which is returned by $tx->result).

-Dan

On Mon, Apr 15, 2019 at 8:48 PM <iwe...@g.ucla.edu> wrote:

>
> dear M experts.  I am again struggling with the OAuth module.  this is
> perhaps because I installed a new ubuntu 18.04.2 machine, and then updated
> Mojolicious to the current version.
>
> first, for anyone else struggling, Mojolicious::Plugin::Web::Auth depends
> on Net::SSLeay, which fails installing.  I believe I fixed this by
> installing `apt install libssl-dev libz-dev`.  I know this is not M's
> fault, but I would suggest that the Auth author stop the install with a
> good instructive error message when these two libraries are not detected.
> grrr....
>
>
> second, my M code is still the same as before, but now it is dying with a
> non-informative error message at the point where I had hoped to get my
> Google authentication callback:
>
> *Can't locate object method "headers" via package "1" (perhaps you forgot
> to load "1"?) at
> /usr/local/share/perl/5.26.1/Mojolicious/Plugin/Web/Auth/OAuth2.pm line
> 122.*
>
> I believe the callback I am getting from google is:
>
> *http://auth.syllabus.space/auth/google/callback?state=hashcode&code=hashcode=email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+openid&authuser=0&hd=g.ucla.edu&session_state=hashcodes&prompt=none
> <http://auth.syllabus.space/auth/google/callback?state=hashcode&code=hashcode=email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+openid&authuser=0&hd=g.ucla.edu&session_state=hashcodes&prompt=none>*
>
> I am guessing that google encodes the email address in one of the hash
> codes (which I have blanked here).
>
> my relevant (I think) code excerpt that should be called is
>
> package SylSpace::Controller::AuthAuthenticator;
> use Mojolicious::Lite;
>
> sub google {
>   my ( $self, $access_token, $userinfo ) = @_;
>   my $name = $userinfo->{displayName} || $userinfo->{name};
>   my $email= $userinfo->{email};
>
>   (defined($email)) or die "no good email.";
>
>   return logandreturn( $self, $email, $name, 'google' );
> }
>
> looking at the code, the error comes from
>
>     (my $res = $tx->result->is_success ) or do {
>         return $callback->{on_error}->( $tx->res->body );
>     };
>
>     my $dat = $self->_response_to_hash($res);
>
> ...
>
>     my $exts = $types->detect( $res->headers->content_type );
>
> could someone please help me?  what could have gone wrong here?
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Mojolicious" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mojolicious+unsubscr...@googlegroups.com.
> To post to this group, send email to mojolicious@googlegroups.com.
> Visit this group at https://groups.google.com/group/mojolicious.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mojolicious+unsubscr...@googlegroups.com.
To post to this group, send email to mojolicious@googlegroups.com.
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.

Reply via email to