我正在使用 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/