2012-04-11 6 views
11

im cercando di implementare un accesso con funzionalità facebook/twitter nella mia app, ho letto alcune guide su oAuth, e penso di aver capito alcuni dei concetti di base, ed ecco cosa ho capito (correggimi se ho torto):accedi con oAuth, che cosa dovrei memorizzare/utilizzare per identificare l'utente?

  1. myApp invia richiesta al provider oAuth, ottiene il token di richiesta (A).
  2. invia l'utente per autenticare il (A), restituisce con token di richiesta autenticato (B) (questo è chiamato token OAuth?)
  3. utilizzare il (B) per ottenere il token (C) di accesso.
  4. utilizzare C per accedere alle informazioni dell'utente.

ed ecco cosa non riesco a girare in testa, quale di questi dovrei usare/memorizzare per identificare l'utente? Ho pensato alla possibilità di utilizzare ognuno di questi, ma sono sempre bloccato su come verificare se l'utente ha effettuato l'accesso prima ...

risposta

10

Se tutto ciò che serve è solo l'autenticazione, quindi è sufficiente memorizzare solo user_id.

Quindi creare un altro tavolo come:

id | service_name | user_id | my_user_id 

dove service_name è o twitter o facebook, user_id - è id dell'utente da Twitter/Facebook e my_user_id è un user_id nel vostro sistema di autenticazione.

Quindi:

SELECT my_user_id FROM oauths WHERE service_name = 'twitter' AND user_id = 42 

restituirebbe voi il vostro id_utente sistema o niente

PS: service_name potrebbe (e dovrebbe) essere normalizzato, l'ho tenuto come una stringa solo per semplificare un esempio

PPS: come hai detto nei commenti probabilmente vorrai "postare/twittare".

In tal caso è necessario memorizzare il token di accesso dell'utente per Twitter e non memorizzare nulla di aggiuntivo per Facebook, ma richiedere il permesso publish_stream per l'autenticazione dell'utente.

+0

stavo pensando anche a postare/tweeting, ma per user_id, volevi dire, memorizzare l'id_utente che possiamo ottenere per accedere con il token di accesso? – hndr

+0

@that_guy: sì. L'user_id del provider oauth – zerkms

+0

@that_guy: btw, aggiunta sulla pubblicazione di – zerkms

Problemi correlati