2012-06-06 64 views
11

https://github.com/alexbilbie/CodeIgniter-OAuth-2.0-ServerLa integración de OAuth 2.0 con CodeIgniter

he encontrado esto en GitHub sin embargo, los pasos para implementar realmente no ayudar con la instalación del código de OAuth en CodeIgniter y no han encontrado ningún realmente buenos artículos sobre cómo hacer esto

¿Alguien ha hecho esto que me puede ayudar a configurar esto?

+0

Estoy intentando descargar el servidor OAuth-2.0 de la URL anterior, pero me aparece 404 no encontrado, ¿me pueden ayudar a instalarlo en mi aplicación CodeIgniter? –

Respuesta

32

Hé Hoang,

La biblioteca de OAuth no es muy explica por sí mismo. Así es como yo tengo trabajo:

Fundamentos

  1. Lea la oAuth 2.0 draft 23 lo suficiente como para tener una idea básica de OAuth, las funciones y flujos.
  2. continuación, siga las instrucciones para instalar el controlador y las bibliotecas de alexbilbie en su CodeIgniter instalación
  3. instalar las tablas y agregar una aplicación y algunos papeles (pensar fuera una aplicación de Facebook y el papel que puede solicitar los permisos para)
  4. Asegúrese de que usted hizo su función validate_user en el archivo oAuth_server.php, en algún lugar en la parte inferior

Haz una solicitud

Ahora se quiere realizar una Aut Solicitud de horización como cliente. Estos sencillos pasos están documentados en this section.

Editar: La biblioteca de autorizaciones de Philurtgeon oAuth 2.0 podría usarse para automatizar esto. Descrito aquí es la forma manual.

Para la biblioteca, esto significa que va a:

/index.php/oauth?client_id=IN_YOUR_APPLICATION & redirect_uri = IN_YOUR_APPLICATION & response_type = código & alcance = YOUR_ROLE

Complete los variabels con los datos has puesto en la base de datos.

depuración parte de él podría dar ..

Si todo va bien, DIT lo siguiente del error:?

ingresar -> Dar autorización a la aplicación -> Nos vemos página redirect_uri con código = XXXXXXX

Querrá ese código XXXXXXX

Luego en el redirect_uri haga una publicación en/index.php/oauth/señal_acceso

Con estos variabels (que todas ahora sabemos)

  • client_id (en tabla de aplicación)
  • client_secret (en tabla de aplicación)
  • redirect_uri (en tabla de aplicación: donde desea ir a guardar el access_token)
  • código (XXXXXX)
  • grant_type (debe ser 'authorization_code') ¡Usted sabe esto después de leer esa sección!

Esa publicación devuelve una cadena JSON que contiene el access_token (o un error). ¡SÍ!

¿Qué sigue

Guardar la señal_acceso en ti aplicación real y lo utilizan en las solicitudes. En su servidor de recursos (probablemente una API y el mismo proyecto CodeIgniter que el servidor de autorización que acabo de explicar), necesita validar el access_token antes de devolver los resultados.

Esto funciona así:

$this->load->library('oauth_resource_server'); 
if (!$this->oauth_resource_server->has_scope(array('account.basic'))) 
{ 
    // Error logic here - "access token does not have correct permission" 
    show_error('An access token is required to request this resource.'); 
} 
else 
{ 
    //GO RETURN RESULTS 
} 

espero que esto le pone en servicio!

PD: Sin embargo, necesita construir algunas áreas de administración para administrar aplicaciones, sesiones y roles.

Eric

+0

Muchas gracias. ¡Necesitas más votos a favor para esto! :) –

+0

Muchas gracias Eric, una cosa que no entiendo es la solicitud uri. He leído la sección en el borrador y explica la solicitud. Uri necesita ser una URL absoluta del cliente, pero si estoy haciendo una aplicación para Android/iPhone, entonces ¿qué valor debe tener ya que mi aplicación no es un sitio web en una web? ¿servidor? Su ayuda sería muy apreciada – skashi

+0

donde puedo encontrar cualquier servidor OAouth2 integrado con CodeIgniter, porque la URL mencionada en cuestión no está disponible, puede ayudarme a encontrar un ejemplo de trabajo –

3

que utiliza otra biblioteca chispa que es realmente bueno para su uso con CodeIgniter. aquí está el buen tutorial sobre cómo instalar esto con chispa y usarlo. Oauth tutorial for codeigniter

+0

Gran idea para usar las chispas Oauth/2, pero usted necesitará una comprensión decente de PHP para ir desde ese tutorial. Tiene varios errores tipográficos y también funciones de referencias que no proporcionan. – EpicVoyage

Cuestiones relacionadas