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

时间:2011-09-15 03:09:28

标签: php codeigniter openid lightopenid

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

            $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的新实例?

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

所以,就像这样:

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