4
我已經能夠成功使用Net :: OpenID :: Consumer,但是當我開始請求用戶的電子郵件地址時,Google現在會提示用戶授權分享他們的電子郵件地址。這種情況每次都會發生,無論用戶是否選中「記住此批准」複選框。我如何阻止Google每次提示用戶批准?如何正確實施Google登錄的Net :: OpenID :: Consumer並請求用戶的電子郵件?
我們網站的OpenID註冊和登錄路徑相同,否則我們只能在用戶註冊時向Google申請電子郵件地址。
我會嘗試發佈足夠多的相關代碼(這是一個Dancer應用程序)。
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,
);
雅虎似乎沒有這個問題。我想這可能是Google的一個問題,但我敢打賭這是我的代碼。
哦,我知道我失去了一些東西,在我最初的測試它的作品。我會在更多測試後獎勵賞金和回答。 – kbosak
非常好...它的工作。 – Annjawn
對於其他可能遇到此問題的人,我認爲我的真正問題是在實際代碼中,我在信任根中使用了通配符。顯然谷歌不喜歡,因爲它不完全匹配return_to域。 – kbosak