Sto cercando di comprendere OAuth2 e Perl (ovvero Net :: OAuth2), in particolare, impostando un'API RESTful per un database e un'applicazione che lo utilizza.Come si scrive un server OAuth2 in Perl?
Perl Oauth2 package mi ha portato a Net :: OAuth2.
Da quanto riesco a capire, ci sono un paio di cose che devo fare (si prega di correggermi se sono fuori nelle erbacce da qualche parte):
- lato server: costruire il server REST (attualmente sta giocando con mojolicious per questo), che parla con il database.
- lato server: costruire il server di autenticazione/autorizzazione (??)
- applicazione client: utilizza WWW :: Mechanize (o qualcosa di simile) per comunicare con il server REST
Nella mia testa, ecco come funziona:
- l'applicazione client dispone di una chiave API (?? registrato con il server (server REST server di Auth), e “cotto in” al client)
- l'utente ha una voce (nome utente e password) in una tabella nel database sul server
- l'utente apre l'app client e tenta di accedere a una risorsa protetta (ad esempio per aggiornare una riga) (ancora, ad esempio, selezionando un'opzione del menu "Esegui questa cosa" nel client; il cliente si traduce che nella API REST URI, ad esempio http://the.rest.server/api/thisthing)
- server reindirizza il client al() bit autenticazione/autorizzazione del server
- server, client e utente non una danza magica OAuth per autenticare l'utente
- il server, il client e l'utente eseguono un'altra magia OAuth dance per assicurarsi che l'utente sia autorizzato a vedere quell'URI della risorsa
- se tutto va bene, il server reindirizza il client all'URI della risorsa originariamente richiesto (con qualunque sia l'autorizzazione necessaria).
È una valutazione ragionevole del processo?
In tal caso, avrebbe più senso disporre di "autenticazione/autorizzazione" come parte del server REST o come server completamente separato? (sullo stesso hardware).
Net::OAuth2::Profile::WebServer spiega chiaramente cosa deve accadere sul lato dell'applicazione client.
I test in http://cpansearch.perl.org/src/MARKOV/Net-OAuth2-0.55/t/ (a meno che io sono veramente manca qualcosa) sono di lavorare con Net :: OAuth2 profilo server web, che sarebbe (ancora una volta) la “applicazione client”.
Esistono altri esempi per la scrittura del client: la connessione a un server OAuth2 esistente, ad esempio le informazioni sull'API di Google, ma non riesco a trovare esempi di scrittura del server .... (Sono abbastanza disponibile a RTFM , se posso trovare i puntatori FM ... apprezzati!)
Grazie, divyanshm - che ha un senso. – bibliophylum
Ho anche trovato un modulo Perl più vecchio (non mantenuto?): [OAuth :: Lite :: Server] (http://search.cpan.org/~lyokato/OAuth-Lite-1.31/lib/OAuth/Lite /Server/mod_perl2.pm) ... ho pensato di farci riferimento qui per i futuri lettori. – bibliophylum