Perl 关于Google openid.com的问题

Perl 关于Google openid.com的问题,perl,authentication,openid,google-openid,Perl,Authentication,Openid,Google Openid,我在我的web应用程序中使用openid身份验证。 我有两个表,一个用于存储任何用户的多个openid\u url,另一个表以openid作为主键 还有另一个表,其中包含用户详细信息,用户id为主键 我的身份验证工作正常,然后我检查返回的url是否在我的openid表中可用,如果它不在,我重定向到一个创建用户表单,而如果url在,用户将重定向到他所在的页面。 但我面临着一个奇怪的问题,谷歌认证后返回的我的电子邮件id的url与前一天左右存储在db中的值不匹配 我不确定我是否遗漏了一些东西,或者我

我在我的web应用程序中使用openid身份验证。 我有两个表,一个用于存储任何用户的多个openid\u url,另一个表以openid作为主键

还有另一个表,其中包含用户详细信息,用户id为主键

我的身份验证工作正常,然后我检查返回的url是否在我的openid表中可用,如果它不在,我重定向到一个创建用户表单,而如果url在,用户将重定向到他所在的页面。 但我面临着一个奇怪的问题,谷歌认证后返回的我的电子邮件id的url与前一天左右存储在db中的值不匹配

我不确定我是否遗漏了一些东西,或者我是否必须在OpenID2.0中使用其他东西

在这一点上的任何线索都是高度赞赏的

编辑: 我有一个线程处理我正在寻找的信息。

谷歌为每个服务提供商(中继方)使用唯一标识符

请验证您的一方是否使用了一致的openid.realm。这是你方的协议和域名。例如:


如果您混合使用或不使用“www.”前缀,或混合使用http或https,Google会将您视为不同的服务提供商,并为同一用户提供不同的ID。

Google为每个服务提供商(中继方)使用唯一的标识符

请验证您的一方是否使用了一致的openid.realm。这是你方的协议和域名。例如:



如果你混合使用“www.”前缀,或者不使用它,或者混合使用http或https,谷歌会将你视为不同的服务提供商,并为同一用户提供不同的ID。

我已经阅读了大量文档,我将仅在谷歌的情况下使用电子邮件作为用户标识符。这是一个uniq属性,适用于任何网站或任何领域。

我已经查阅了大量文档,我将仅在谷歌的情况下使用电子邮件作为用户标识符。这是一个uniq属性,适用于任何站点或域。

您使用哪些模块进行openid身份验证?或者如果没有,显示您的代码?我正在使用cpan中的Catalyst::Authentication::Credential::OpenID模块。我已经提到了。这是我的catalyst应用程序配置,用于开放id领域`openid=>{ua_class=>“LWPx::ParanoidAgent”,ua_args=>{whitelisted_hosts=>[qw/127.0.0.1 localhost/],},凭证=>{class=>“openid”,},store=>{class=>'Null'},}`您使用哪些模块进行openid身份验证?或者如果没有,显示您的代码?我正在使用cpan中的Catalyst::Authentication::Credential::OpenID模块。我已经提到了。这是我的catalyst应用程序配置,用于开放id领域`openid=>{ua_class=>“LWPx::ParanoidAgent”,ua_args=>{whitelisted_hosts=>[qw/127.0.0.1 localhost/],},凭证=>{class=>“openid”,},store=>{class=>'Null'},}`正在使用的模块没有提供配置openid.realm的方法;它正在为($c->req->uri->path)使用
$c->uri\u
。并且$c->req->uri->path一致吗?yeh path一致,因为目前只有一个登录操作。路径的结尾被忽略。这是唯一使用的协议和域名。因此,如果您的网站可在和或通过和访问,则这是一个问题;它正在为($c->req->uri->path)使用
$c->uri\u
。并且$c->req->uri->path一致吗?yeh path一致,因为目前只有一个登录操作。路径的结尾被忽略。这是唯一使用的协议和域名。因此,如果您的网站可在和或通过和访问,则这是一个问题。Hotmail电子邮件地址在未登录6个月后过期。公开内部管理文件的twitter就是这样做的:谢谢nhnb,但我声明我将只为谷歌使用gmail,而不是为任何其他开放id提供商使用gmail。你说什么?我的谷歌帐户有一个关联的第三方电子邮件地址。我没有gmail帐户,但我可以使用我的google帐户进行openid身份验证。Hotmail电子邮件地址在未登录6个月后过期。公开内部管理文件的twitter就是这样做的:谢谢nhnb,但我声明我将只为谷歌使用gmail,而不是为任何其他开放id提供商使用gmail。你说什么?我的谷歌帐户有一个关联的第三方电子邮件地址。我没有gmail帐户,但我可以使用我的google帐户进行openid身份验证。