Mojolicious 应用程序使用 google 身份验证,插件 OAuth2

Mojolicious app using google authentication, plugin OAuth2

我正在使用 Mojolicious::Plugin::OAuth2 构建一个简单的应用程序,您可以在其中使用您的 google+ 凭据登录,但我的语法有问题。

我的代码非常接近他们给出的例子:

use Mojolicious::Lite;
use Mojolicious::Plugin::OAuth2;

plugin 'OAuth2' => {
  google => {
    key => 'xxxxxx.apps.googleusercontent.com',
    secret => 'xxxxxxxx',
  },
};

get "/auth" => sub {
  my $self = shift;
  $self->delay(
    sub {
      my $delay = shift;
      $self->get_token(google => $delay->begin, scope->profile)
    },
    sub {
      my($delay, $token, $tx) = @_;
      return $self->render(text => $tx->res->error) unless $token;
      $self->session(token => $token);
      $self->render(text => $token);
    },
  );
};

 app->start;

问题区域是 scope->profile。在未指定范围的情况下,我从 google 收到一条错误消息,提示“400:错误:invalid_request 缺少必需的参数:范围”,但我不太正确,现在收到语法错误。

文档说要这样做$token = $c->get_token($provider_name => \%args);那么我该如何编写 args 散列使其有意义?

这个语法对我有用

  $self->get_token('google', scope => 'profile', $delay->begin);

我不得不把 $delay->begin 放在最后,google 放在引号里。