Domanda

Sto leggendo di Federated Login per Google utenti di account di capire come posso avere un utente accede a un'applicazione web utilizzando il proprio account Google.

Quindi, verso la fine del processo, Google restituisce un Google fornito identificatore che viene aggiunto come openid.claimed_id. Ciò significa che l'applicazione web utilizza questo identificativo per riconoscere l'utente e consentire l'accesso alle funzioni delle applicazioni e dei dati. La mia domanda è, è questo identificatore statica? Posso usare questo identificativo per più volte id lo stesso utente?

È stato utile?

Soluzione

Sì. Si consideri il valore di openid.claimed_id essere il nome utente. Soprattutto con Google, ma questo è vero per qualsiasi provider OpenID che implementa veramente 'identità diretto', non considerano questo nome utente per essere correlatible con altri siti web. Qualsiasi altra parte fare affidamento oltre il proprio sito web otterrà un valore claimed_id diverso per lo stesso utente di Google, in base alla progettazione.

Inoltre, assicurati per il trattamento di questa claimed_id come case sensitive .

Altri suggerimenti

La risposta alla tua domanda specifica si trova in Googles OpenID documentazione API :

  

L'identificatore fornito da Google, che non ha alcun collegamento al reale nome di account Google dell'utente o la password, è un valore persistente; rimane costante anche se l'utente cambia il proprio nome utente di Google e / o indirizzo e-mail. Questo identificatore è anche una "identità diretto", vale a dire, Google restituisce un valore diverso per ciascuna relying party. Google utilizza il parametro di richiesta openid.realm di riconoscere il relying party, quindi, se l'applicazione di terze parti decide di cambiare questo valore, tutti gli identificatori degli utenti cambierà.

In realtà, ho appena incontrato un caso in cui il claimed_id Google aveva cambiato per il mio utente di prova. Stavo venendo alla fine di attuare OpenID nella mia app, e per nessun apparentemente ragionare il claimed_id nei dati di risposta è cambiato.

Ho testato con questo account per le ultime due settimane, e il claimed_id era la stessa per tutto questo tempo, come previsto. Poi Wham, cambiato! Ho guardato i dati di risposta molte volte a verificare, e il codice sottostante per recuperare i dati non era cambiato.

Non sono sicuro di come gestire questo al momento, ma penso che questo sta andando a buttarmi per un ciclo. Dopo l'autenticazione iniziale, gli utenti registrati per il sito (come ci si potrebbe aspettare) e impostare un nome schermo. Come possiamo verificare che sia lo stesso utente se il claimed_id era cambiato? Certamente non possiamo utilizzare l'indirizzo e-mail, per le migliori pratiche.

Modifica

Ora ho la torta in faccia! Ho perso un piccolo dettaglio, che si è rivelata un importante dettaglio. Cambiare il mio ambiente di sviluppo e stava ospitando su un diverso v-host. Questo cambiamento in modo efficace il regno, e questo cambierà la risposta claimed_id Secondo la documentazione.

Questa è stata una buona lezione per me, come stavo per implementare OID in un sottodominio in cui regno era stato impostato automaticamente nel mio codice. Ora mi salvai un mal di testa in fondo alla strada, perché io non sarei stato in grado di utilizzare lo stesso database degli utenti in tutti gli altri sottodomini senza rompere identità.

aggiornamento regno

Continua

Proprio come una nota a margine - anche se si sta sviluppando la vostra soluzione OpenID per uno dei tuoi sottodomini, potrebbe essere prudente per di specificare regno al dominio di primo livello

.

per esempio, openid.realm = http:. //*.Yourdomain.com

E 'vi permetterà di espandere la vostra pagina di accesso su tutti i tuoi sottodomini e mantenere l'identità degli utenti attraverso loro.

  

(opzionale) reame autenticato. Identifica il dominio che la fine   utente è stato chiesto di fidarsi. (Esempio: "http: //*.myexamplesite.com")   Questo valore deve essere coerente con il dominio definito nella   openid.return_to. Se questo parametro non è definito, Google utilizzerà   l'URL riferimento nel openid.return_to.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top