Autenticazione social dall'app mobile connessa al server API

3

Ho un server Node.js che utilizza PassportJS che utilizza l'accesso social tramite Google, Facebook e Twitter.

Il server Node.js ospita un'API che utilizza il middleware PassportJS per autenticare le rotte e servire in modo sicuro i dati. L'API esiste per servire un'applicazione iOS che sarà dove l'utente "accede" attraverso Google, Facebook, Twitter e successivamente creerà il proprio account sul mio servizio.

Come posso ottenere questo risultato quando gli SDK mobili per le rispettive aziende sono per una comunicazione diretta tra il mio cliente e il loro server ? In sostanza, voglio un modo per il mio cliente che parla con il mio server che parla con il loro server . Per favore fatemi sapere se l'idea generale è errata.

    
posta Carpetfizz 22.12.2015 - 07:15
fonte

1 risposta

3

Questi processi non accadrebbero uno dopo l'altro? Ecco un flusso di lavoro che per me ha senso come utente:

  1. Accedo al servizio Web utilizzando il mio account Facebook. Questo ti fornisce il mio indirizzo e-mail e l'ID utente di Facebook.
  2. Il tuo servizio web quindi mi chiede di autorizzarti a utilizzare un'API mobile usando (diciamo) Pocket. Di solito, ciò comporta l'invio a un URL sul link che mi chiederà di confermare che desidero che il tuo servizio web disponga di determinate autorizzazioni per il mio account Pocket. Una volta confermato, mi reindirizza al tuo webservice, passandogli un token di accesso che il tuo webservice può quindi utilizzare per accedere al mio account. Puoi quindi archiviare questo token localmente sul mio client o sul mio server, in entrambi i casi assicurandoti di accedere al tuo servizio prima che il tuo servizio possa utilizzare il mio accesso token per accedere a un'API mobile utilizzando le mie credenziali
  3. Il tuo webservice ora può effettuare richieste API contro Pocket usando il mio token di accesso, finché non revocherò il tuo accesso dal mio account Pocket.

Se l'API mobile che desideri utilizzare fornisce l'autenticazione (come fa Pocket), potresti essere in grado di autenticare e ottenere l'autorizzazione allo stesso tempo. Non ho mai usato PassportJS, ma sembra che l'opzione scope ti permetta di chiedere permessi durante l'accesso attraverso un particolare servizio; se lo fai, presumo che l'oggetto del profilo utente che otterrai contenga un token di accesso che puoi utilizzare per fare ulteriori richieste su Facebook.

Se questo token di accesso è memorizzato nel tuo client o nel tuo server non dovrebbe fare alcuna differenza, a patto che venga passato al loro server quando fai richieste API per conto del tuo utente.

    
risposta data 29.12.2015 - 01:08
fonte

Leggi altre domande sui tag