代码之家  ›  专栏  ›  技术社区  ›  Shripad Krishna

AuthLogic OpenID:从提供程序获取电子邮件

  •  0
  • Shripad Krishna  · 技术社区  · 14 年前

    这是一个非常奇怪的问题:我已经设置了 authlogic_openid_selector_example app . 注册时,OpenID提供者不会第一次返回电子邮件ID。但是,如果我删除了帐户并重新注册,电子邮件ID就会被返回。如何解决此问题?我在这里托管了我的应用程序版本: http://pingauthtest.heroku.com/

    我查看了我的开发日志,第一次提供者没有返回 openid.ext1.value.ext0 其中包含电子邮件ID。只有先删除帐户后,才会第二次返回。

    编辑 :调试的一些额外信息:

    THIS IS WHEN IT REGISTERS:
    
    
    
      OpenIdAuthentication::Association Load (5.3ms)   SELECT * FROM "open_id_authentication_associations" WHERE ("open_id_authentication_associations"."server_url" = E'https://www.google.com/accounts/o8/ud') 
    Generated checkid_setup request to https://www.google.com/accounts/o8/ud with assocication AOQobUde_9BUnQsk91rb_Sf9tguJ-S7Gpkwahc-nvDGDYAC8nphisNqu
    Redirected to https://www.google.com/accounts/o8/ud?
    openid.assoc_handle=AOQobUde_9BUnQsk91rb_Sf9tguJ-S7Gpkwahc-nvDGDYAC8nphisNqu
    
    &openid.ax.mode=fetch_request
    &openid.ax.required=ext0
    &openid.ax.type.ext0=http%3A%2F%2Faxschema.org%2Fcontact%2Femail
    &openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select
    &openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select
    &openid.mode=checkid_setup
    &openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0
    &openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0
    &openid.ns.sreg=http%3A%2F%2Fopenid.net%2Fextensions%2Fsreg%2F1.1
    &openid.realm=http%3A%2F%2Flocalhost%3A3000%2F
    &openid.return_to=http%3A%2F%2Flocalhost%3A3000%2Faccount%3Ffor_model%3D1%26_method%3Dpost%26open_id_complete%3D1
    &openid.sreg.required=email
    Completed in 3574ms (DB: 14) | 302 Found [http://localhost/account]
    

    THIS IS WHEN IT USES SESSIONS:
    
    
     OpenIdAuthentication::Association Load (5.3ms)   SELECT * FROM "open_id_authentication_associations" WHERE ("open_id_authentication_associations"."server_url" = E'https://www.google.com/accounts/o8/ud') 
    Generated checkid_setup request to https://www.google.com/accounts/o8/ud with assocication AOQobUde_9BUnQsk91rb_Sf9tguJ-S7Gpkwahc-nvDGDYAC8nphisNqu
    Redirected to https://www.google.com/accounts/o8/ud?
    openid.assoc_handle=AOQobUde_9BUnQsk91rb_Sf9tguJ-S7Gpkwahc-nvDGDYAC8nphisNqu
    
    &openid.ax.mode=fetch_request
    &openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select
    &openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select
    &openid.mode=checkid_setup
    &openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0
    &openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0
    &openid.ns.sreg=http%3A%2F%2Fopenid.net%2Fextensions%2Fsreg%2F1.1
    &openid.realm=http%3A%2F%2Flocalhost%3A3000%2F
    &openid.return_to=http%3A%2F%2Flocalhost%3A3000%2Fuser_session%3Ffor_session%3D1%26_method%3Dpost%26open_id_complete%3D1
    
    Completed in 2708ms (DB: 15) | 302 Found [http://localhost/user_session]
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Shripad Krishna    14 年前

    伟大的!我成功了!!:)感谢承诺 mreinsch .

    以下是要启用自动注册的任何人的URL: 此示例应用程序来自@holden示例应用程序。它还不支持Facebook OID。一旦错误被修复,我将更新我的报告。

    来源: http://github.com/shripadk/authlogic_openid_selector_example/tree/master

    活生生的例子 : http://testingauth.heroku.com/