2011-09-15 201 views
1

我在一个codeigniter会话中存储$lightopenid->identity,如下所示:LightOpenID - 如何从存储的会话中检索电子邮件?

   $lightopenid   = new Lightopenid; 
      $lightopenid->required = array('contact/email'); 

      if ($lightopenid->validate()) { 

       $google_open_id = $lightopenid->identity; 
       $this->session->set_userdata('google_open_id', $google_open_id); 
      } 

在我的控制器的一个单独的函数中,我想检索用户的电子邮件。

   print_r($this->session->userdata('google_open_id')); 

会显示身份链接,但如何从中检索电子邮件?

我需要lightopenid的新实例吗?

有什么建议吗?

+0

看看[这里](http://stackoverflow.com/questions/3995011/log-in-the-user-with-lightopenid/3999068#3999068) – tttony

+0

ttony和@jeff - 我在发布之前就已经看到了这个问题,但仍然不认为我的是一个骗局 - 你链接到的问题没有解决需要通过codeigniter会话检索电子邮件***的问题,在控制器中这不是Lightopenid对象创建的*** *** – pepe

回答

0

您必须在会话中存储电子邮件。 LightOpenID不存储任何内容。您必须重新进行整个身份验证才能仅从身份中检索电子邮件地址。

所以,这样的事情:

if($openid->validate()) { 
    $attributes = $openid->getAttributes(); 
    $this->session->set_userdata('open_id', $openid->identity); 
    $this->session->set_userdata('email', $attributes['email']); 
} 
相关问题