Question

Je suis en utilisant LightOpenID et je suis en train d'obtenir des attributs pour cette authentification gmail, mais il ne semble pas retourner quoi que ce soit sur mon compte personnel et je reçois aucune erreur. Je suis très nouveau pour OpenID et espérais que quelqu'un pourrait me aider qui a fait auparavant.

Je précise les champs validate() et les retourner avec process()

J'utilise l'URL OpenID: https://www.google.com/accounts/ o8 / id

    public function show () {
        if ($this->site->tru->post->isRequest() || !$this->site->tru->get->isEmpty('openid_mode')) {
            require_once $this->site->tru->config->get('root.path').'/lib/php/openid.php';
            $this->lightOpenId = new LightOpenID;
            if ($this->validate() || $this->lightOpenId->validate()) {
                $this->process();
            }
        }

        $this->site->addCss('account/login.css');

        $this->site->addJs('account/login.js');

        echo $this->site->tru->display->getTemplate('/site/account/login.tpl');
    }

    public function process () {
        if ($this->lightOpenId->validate()) {
            echo '<pre>'.print_r($this->lightOpenId).'
'.print_r($this->lightOpenId->getAttributes()).'</pre>';
        }
    }

    public function validate () {
        if (!$this->site->tru->post->isEmpty('openid_url')) {
            $this->lightOpenId->identity = $this->site->tru->post->get('openid_url');
            $this->lightOpenId->optional = array('contact/email', 'namePerson', 'contact/postalCode/home', 'contact/country/home');

            header('Location: '.$this->lightOpenId->authUrl());
        }

        return count($this->error) == 0;
    }
Était-ce utile?

La solution

Google répond uniquement aux paramètres requis, en ignorant complètement les options.

En outre, il peut retourner uniquement les attributs suivants:

contact/country/home
contact/email
namePerson/first
namePerson/last
pref/language

namePerson et contact/postalCode/home ne fonctionnera pas.

Les informations ci-dessus sont spécifiques à Google, et sans aucun rapport avec LightOpenID lui-même.

Quant à la bibliothèque, je vous conseille d'appeler contre lightOpenId- $> validate () deux fois. Chaque fois que vous l'appelez, il envoie une requête au fournisseur qui pourrait rejeter la deuxième demande.

Autres conseils

$openid->identity = 'https://www.google.com/accounts/o8/';

// use the following line to obtain the required details. These are the only details that google mail provides. This is for lightopenid.
$openid->required = array('namePerson/friendly', 'contact/email' , 'contact/country/home', 'namePerson/first', 'pref/language', 'namePerson/last'); 

header('Location: ' . $openid->authUrl());
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top