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 放在引号里。
我正在使用 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 放在引号里。