Net :: OpenID :: Consumerを使用することはできましたが、ユーザーのメールアドレスをリクエストし始めると、Googleはユーザーにメールアドレスの共有を承認するように求めるようになりました。これは、ユーザーが[この承認を記憶する]チェックボックスをオンにするかどうかに関係なく、毎回発生します。Googleがユーザーに毎回承認を求めないようにするにはどうすればよいですか?
当サイトのOpenID登録とログインパスは同じですが、それ以外の場合は、ユーザーが登録したときにのみGoogleにメールアドレスをリクエストできます。
十分な関連コードを投稿してみます(これはダンサーアプリです)。
my $csr = Net::OpenID::Consumer->new(
ua => LWP::UserAgent->new(),
consumer_secret => $secret,
);
my $claimed_identity = $csr->claimed_identity('https://www.google.com/accounts/o8/id');
$claimed_identity->set_extension_args(
"http://openid.net/srv/ax/1.0",
{
'mode' => 'fetch_request',
'type.email' => 'http://axschema.org/contact/email',
'required' => 'email',
});
my $check_url = $claimed_identity->check_url(
return_to => 'http://my.site.com/openid_landing',
trust_root => 'http://my.site.com',
delayed_return => 1,
);
Yahooにはこの問題はないようです。これはGoogle側の問題かもしれないと思いますが、それは私のコードだと思います。