2012-06-06 17 views
11

https://github.com/alexbilbie/CodeIgniter-OAuth-2.0-ServerIntegrazione OAuth 2.0 con CodeIgniter

Ho trovato questo su GitHub tuttavia le misure per attuare in realtà non aiutare con l'installazione del codice di OAuth in CodeIgniter e non hanno trovato alcun veramente buoni articoli su come fare questo

Qualcuno ha già fatto questo che può offrirmi aiuto nell'impostarlo?

+0

Sto provando a scaricare il server OAuth-2.0 dall'URL sopra, ma sto ottenendo 404 non trovato, puoi aiutarmi ad installarlo nella mia applicazione CodeIgniter? –

risposta

32

Hé Hoang,

La biblioteca oAuth non è davvero evidente. Questo è quanto ho capito di lavoro:

Basics

  1. Leggi l'oAuth 2.0 draft 23 quel tanto che basta per avere un'idea di base di OAuth, ruoli e flussi.
  2. quindi seguire le istruzioni per l'installazione del controller e le librerie dal alexbilbie in CodeIgniter installazione
  3. installare le tabelle e aggiungere un'applicazione e alcuni ruoli (pensare fuori un app Facebook e ruoli è possibile richiedere autorizzazioni per)
  4. Assicurati di fatto la funzione validate_user nel file oAuth_server.php, in fondo da qualche parte

fare una richiesta

Ora si desidera eseguire un Aut richiesta di orazione come cliente Questi pochi semplici passaggi sono documentati in this section.

Modifica: la libreria di autorizzazione oAuth 2.0 di Philsturgeon potrebbe essere utilizzata per automatizzarla. Descritto qui è il modo manuale.

per la biblioteca, questo significa andare a:

/index.php/oauth?client_id=IN_YOUR_APPLICATION & redirect_uri = IN_YOUR_APPLICATION & response_type = codice & scope = YOUR_ROLE

Riempire i variabels con i dati hai messo nel database.

Debug alcuni di essi potrebbe dare ..

Se tutto va bene si dit il seguente della errore:?

Login -> autorizzare l'applicazione -> Ci vediamo pagina redirect_uri con il codice di = XXXXXXX

Si desidera che il codice XXXXXXX

Quindi sul redirect_uri creare un post su/index.php/OAuth/access_token

Con queste variabels (li tutti oggi conosciamo)

  • client_id (in tabella di applicazione)
  • client_secret (in tabella di applicazione)
  • redirect_uri (in tabella di applicazione: dove vuoi andare a salvare il token di accesso)
  • codice (il XXXXXX)
  • grant_type (deve essere 'codice_autorizzazione') Lo sai dopo aver letto quella sezione!

Quel post restituisce una stringa JSON contenente il token di accesso (o un errore). SI!

Quali sono le prospettive

Salvare l'access_token in voi effettiva applicazione e utilizzarlo nelle richieste. Sul tuo server delle risorse (probabilmente un'API e lo stesso progetto CodeIgniter del server di autorizzazione appena spiegato) devi convalidare access_token prima di restituire i risultati.

questo funziona in questo modo:

$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 
} 

Spero che questo si alza e funzionante!

PS: È necessario creare un'area di amministrazione per gestire applicazioni, sessioni e ruoli.

Eric

+0

Grazie mille. Hai bisogno di più upvotes per questo! :) –

+0

Grazie mille Eric, Una cosa che non capisco è la richiesta uri. Ho letto la sezione nella bozza e spiega la richiesta che uri ha bisogno di essere un url assoluto dal client, ma se sto facendo un'app per android/iphone, allora cosa deve essere questo valore dato che la mia app non è un sito web su un web server? Il tuo aiuto sarebbe molto apprezzato – skashi

+0

dove posso trovare qualsiasi OAouth2-Server integrato con CodeIgniter, perché l'URL in questione non è disponibile, puoi aiutarmi a trovare un esempio funzionante –

3

ho usato un'altra libreria scintilla che è veramente buono da usare con CodeIgniter. ecco il buon tutorial su come installare questo con spark e usarlo. Oauth tutorial for codeigniter

+0

Ottima idea di usare le scintille Oauth/2, ma tu avrà bisogno di una conoscenza decente di PHP per andare avanti da quel tutorial. Ha diversi refusi e anche riferimenti a funzioni che non forniscono. – EpicVoyage

Problemi correlati