5

Ho seguito questo collegamento https://spring.io/guides/tutorials/spring-boot-oauth2 per implementare la sicurezza sul mio server di risorse. Il mio obiettivo finale era quello di avere un server di login personalizzato oauth per accedere al server di risorse da un'app per Android che ho ottenuto utilizzando grant_type = password.Aggiunta di accesso social alle app native mediante la sicurezza di primavera oauth

Ora desidero aggiungere gli accessi social come Facebook allo stesso flusso. Sono stato in grado di farlo funzionare facilmente per le applicazioni web, ho persino ottenuto l'accesso da Facebook in app Android nativa, ma ora? Dopo tante ricerche non sono riuscito a trovare nulla di buono per un'app per Android. Quindi le mie domande sono:

  1. Come aggiungere accesso social utilizzando spring oauth2 a un'app per Android. Qualche link?
  2. Devo usare Spring social con Spring Security per il mio obiettivo. Se sì, come?
  3. Sto usando JDBCTokenStore per mantenere i miei token nel caso in cui il mio server si riavvii. Se ottengo il mio token al server in qualche modo come dovrei conservarlo?

Per favore fatemi sapere se la mia comprensione non è corretta.

risposta

0

Senza scavare troppo in profondità nei dettagli, è possibile prendere il token che si ottiene dal client e utilizzarlo per creare una nuova connessione tramite il repository di connessione. Naturalmente, dovrai anche sapere a quale uso appartiene la connessione. Alla fine, il codice sarà qualcosa come questo:

Codice:

UsersConnectionRepository ucr = ...; // probably injected 
ConnectionRepository cr = ucr.createConnectionRepository(userId); // you determine the userId somehow 
ConnectionData cd = new ConnectionData(...); // lots of params...you'll fill those in. 
FacebookConnectionFactory fcf = ...; // create or inject this 
Connection<Facebook> conn = fcf.createConnection(cd); 
cr.addConnection(conn); 

Come si può vedere, il codice di cui sopra è ruvido ... me ne vado molto per voi per riempire in. Ma questo è più o meno come lo faresti.