openid yii lightopenid openid-selector

Soporte de OpenId para Yii



lightopenid openid-selector (2)

Después de jugar con él por un tiempo, voy a responder mi propia pregunta. Así es como lo hago funcionar, por lo que puede cambiarlo según sus necesidades.

Nota: utilizo un userController en lugar del siteController y sigo todas las instrucciones en la página de extensión respectiva.

Si utilizó los dos complementos como se indicó anteriormente, entonces lo que debe hacer a continuación para que funcione son los siguientes: (esta es una guía paso a paso) Pero los pasos más importantes son 2c y 3, son el pegamento para ambos complementos

1) Tener una página de inicio de sesión que use OpenidSelector. Colóquelo en views / user / login.php

<?php $this->widget(''application.extensions.openidProviders.openidProviders'', array ( ''options'' => array ( ''lang'' => ''en'', // ''demo'' => ''js:true'', ''cookie_expires'' => 6*30, )));?>

2) Configurar acciones para manejar la selección desde el openidSelector. Puse esto en userController.

a) En el archivo de configuración principal.

''components''=>array( ''user''=>array( // enable cookie-based authentication ''allowAutoLogin''=>true, ''loginUrl'' => array(''/user/login''), //change the default login page ),

b) En el archivo userController, agregue las acciones de inicio de sesión y autenticación

array(''allow'', // allow all users to perform ''index'' and ''view'' actions ''actions''=>array(''login'', ''authenticate''),

Código de acción # 1 actionLogin: para activar la página de vista de inicio de sesión.

public function actionLogin() { // display the login form $this->render(''login'',array()); }

c) Code for action # 2 actionAuthenticate - código modificado de la página de instrucciones LOID, esto es para manejar cuando se selecciona un OpenIDProvider en la página de inicio de sesión.

public function actionAuthenticate () { // Put the Simple usage: code on // http://www.yiiframework.com/extension/loid here: // Code from loid Simple usage page. // START HERE $loid = Yii::app()->loid->load(); if (!empty($_GET[''openid_mode''])) { if ($_GET[''openid_mode''] == ''cancel'') { $err = Yii::t(''core'', ''Authorization cancelled''); } else { try { echo $loid->validate() ? ''Logged in.'' : ''Failed''; } catch (Exception $e) { $err = Yii::t(''core'', $e->getMessage()); } } if(!empty($err)) echo $err; } else { // **NOTE:Comment out this line from the loid sample page** // $loid->identity = "http://my.openid.identifier"; //Setting identifier // this openid_identifier is need after you click the openselector $loid->identity = $_GET[''openid_identifier'']; // CHANGE HERE $loid->required = array(''namePerson/friendly'', ''contact/email''); //Try to get info from openid provider $loid->realm = (!empty($_SERVER[''HTTPS'']) ? ''https'' : ''http'') . ''://'' . $_SERVER[''HTTP_HOST'']; $loid->returnUrl = $loid->realm . $_SERVER[''REQUEST_URI'']; //getting return URL if (empty($err)) { try { $url = $loid->authUrl(); $this->redirect($url); } catch (Exception $e) { $err = Yii::t(''core'', $e->getMessage()); } } } // Code from loid Simple usage page. // END HERE }

3) Cambia la URL de acción para Autenticar en openidProviders / views / main-en.php

Cambio

form action="examples/consumer/try_auth.php" method="get" id="openid_form"

a

form action="authenticate" method="get" id="openid_form"

Eso debería ser. No he probado el caso de falla, solo probado con el inicio de sesión de google.

Quiero jugar con soporte OpenID en Yii.

Después de buscar posibles complementos, encontré estos dos. Uno para OpenidSelector y otro para LightOpenId

http://www.yiiframework.com/extension/simpleopenidselector/

http://www.yiiframework.com/extension/loid

¿Son estas las extensiones adecuadas para usar en Yii para el soporte de OpenId? ¿Algo más? Y me gustaría obtener alguna guía sobre qué hacer con estas extensiones si son correctas.

Esto es lo que creo que debo hacer además de instalarlos según las instrucciones de la página.

  1. Crear OpenIdUserIdentity extiende CUserIdentity y poner el código de autenticación allí
  2. Cree una página de inicio de sesión y coloque el código del selector simpleopen en una vista.
  3. Crear un actionOpenIdLogin methon en siteController

entonces estoy algo perdido ya que no entiendo la muestra de Uso en Loid y no estoy seguro de cómo hacerlo (1) y (3) arriba.

Por favor, avíseme si estoy en el camino correcto y posiblemente proporcione alguna orientación. Gracias.