Php LightOpenID-如何从存储的会话检索电子邮件?

Php LightOpenID-如何从存储的会话检索电子邮件?,php,codeigniter,openid,lightopenid,Php,Codeigniter,Openid,Lightopenid,我正在codeigniter会话中存储$lightopenid->identity,如下所示: $lightopenid = new Lightopenid; $lightopenid->required = array('contact/email'); if ($lightopenid->validate()) { $google_open_id = $

我正在codeigniter会话中存储
$lightopenid->identity
,如下所示:

            $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
实例


有什么建议吗?

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

比如说:

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

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