perl - Mojolicious 应用程序使用谷歌身份验证,插件 OAuth2

标签 perl oauth-2.0 google-authentication mojolicious

我正在使用 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。在没有指定范围的情况下,我从谷歌收到一条错误消息“400:错误:invalid_request 缺少必需的参数:范围”,但我不太正确,现在收到语法错误。

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

最佳答案

这种语法对我有用

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

我不得不将 $delay->begin 放在最后,并将 google 放在引号中。

关于perl - Mojolicious 应用程序使用谷歌身份验证,插件 OAuth2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27972125/

相关文章:

ruby-on-rails - Rails 错误 : certificate verify failed. ..我已经尝试了一切

Perl Dbi 和存储过程

linux - 使用 Perl 程序和命令行参数读取指定行

angularjs - 未捕获( promise ): Login providers not ready yet. 您的控制台上是否有错误?

node.js - Discord OAuth2 返回 '{"错误“: "access_denied"}'

ios - GoogleAuth 在 IOS 中使用 Firebase

perl - 替换二进制形式 0->1 和 1->0 值 - perl

perl - 使用闭包修改 Perl BEGIN block 中的类

java - 使用 OAuth2.0 或 Azure Active Directory 保护 REST API

google-api - 使用 OAuth2 服务帐户生成访问 token 时出现问题