小编And*_*ocu的帖子

如何在不要求用户插入信息的情况下向用户请求权限访问 Google Sign-Up

我已经为我的网络应用程序实现了谷歌登录,我在其中使用了这个库:https : //metacpan.org/pod/Google :: RestApi :: Auth :: OAuth2Client来获取代码值,访问令牌然后是用户的信息(电子邮件、姓名、google-id)。

我在这个实现中的问题是,用户在需要插入他的信息(电子邮件和密码)的地方提示同意,我想重定向用户以获得同意,他可以选择帐户,而不是插入他的信息。我不知道我在何处发出 GET 请求的实现是不正确的,还是因为我使用的库。

在前端,我有一个表单调用重定向到我的后端函数“on_google_login”的路由:

sub on_google_login {
  my $self = shift;
  my $redirect_name = $self->get_redirect_name();
  $self->session(redirect => $redirect_name);
  my $google = Google::RestApi::Auth::OAuth2Client->new(
    client_id     => $ENV{GOOGLE_CLIENT_ID},
    client_secret => $ENV{GOOGLE_SECRET},
    redirect_uri  => $ENV{GOOGLE_BASE_URL} . '/google_callback'
  );

  my $url = $google->authorize_url(
    display => 'page'
  );

  $self->redirect_to($url);
}
Run Code Online (Sandbox Code Playgroud)

这是我的回调函数,我在其中提取“代码”并使用访问令牌请求用户的信息。

sub on_google_callback {
  my $self = shift;

  my $code = $self->req->param('code');
  my $google = Google::RestApi::Auth::OAuth2Client->new(
    client_id     => $ENV{GOOGLE_CLIENT_ID},
    client_secret => $ENV{GOOGLE_SECRET},
    redirect_uri  => $ENV{GOOGLE_BASE_URL} …
Run Code Online (Sandbox Code Playgroud)

perl google-api google-authentication oauth-2.0 google-signin

7
推荐指数
0
解决办法
88
查看次数