2014-09-28 18 views
7

Sto utilizzando chrome.identity per accedere a un provider oauth di terze parti in un'estensione di Chrome. Funziona bene per la registrazione in quando utilizzo launchWebAuthFlow Mi viene presentata la schermata di accesso di terze parti e reindirizzata alla mia applicazione dopo il flusso di accesso.Come disconnettersi da un provider oauth chrome.identity

Tuttavia, non riesco a trovare un modo per abilitare la funzionalità di disconnessione nella mia estensione. Non sembra esserci una funzione per cancellare l'identità registrata nella cache. La prossima volta che viene richiamatoWebAuthFlow, verrà automaticamente effettuato il login come primo utente e non mi verrà richiesto di eseguire nuovamente l'accesso.

C'è un modo per cancellare lo stato di accesso del plugin chrome.identity?

+0

È possibile specificare il provider di cui si sta parlando (se appropriato)? – Xan

+0

Il provider è [untappd] (https://untappd.com/api/docs) ma la mia domanda riguarda maggiormente l'identità [chrome.identity] (https://developer.chrome.com/apps/identity). – infomofo

risposta

12

Non sono a conoscenza dello specifico provider di terze parti. Ma ho affrontato il problema simile usando Google Oauth con chrome.identity.launchWebAuthFlow(). Ho potuto accedere l'utente, ma non firmare utilizzando removeCachedAuthToken()

In questo caso, il logout l'utente, ho usato chrome.identity.launchWebAuthFlow() con l'URL di logout di Google, piuttosto che si tratta di URL OAuth

chrome.identity.launchWebAuthFlow(
    { 'url': 'https://accounts.google.com/logout' }, 
    function(tokenUrl) { 
     responseCallback(); 
    } 
); 

Questo ha funzionato abbastanza bene.

+0

Grazie, per me ha funzionato! – infomofo

+0

Grazie. Dopo settimane di ricerche, questo ha fatto per me il trucco per quanto riguarda WordPress OAuth2. – colbybhearn

+0

Come faccio a far funzionare questo per il logout di Facebook? Questo non funziona per me:/ –

0

È possibile cancellare la cache di identità utilizzando il metodo chrome.identity.removeCachedAuthToken(object details, function callback).
https://developer.chrome.com/apps/identity#method-removeCachedAuthToken

+5

Avrei dovuto menzionare nella domanda che ho provato questo metodo, ma non funziona. Ho cercato nei forum di supporto per le estensioni di Chrome e altri utenti che stanno utilizzando il launchWebAuthFlow riportano lo stesso [problema] (https://code.google.com/p/chromium/issues/detail?id=328876). Il metodo removeCachedAuthToken sembra funzionare solo quando si utilizza google come provider oauth; non sembra funzionare con una terza parte. – infomofo

0

Mi è capitato di colpire lo stesso problema di recente, e alla fine l'ho risolto aggiungendo login_hint=<new_user> e prompt=consent nell'URL di accesso.

3

È necessario aggiungere prompt=select_account al proprio URL di autenticazione. Il tuo problema sarà risolto.

https://accounts.google.com/o/oauth2/auth?client_id= {} clientId & response_type = token & scope = {} ambiti & redirect_uri = {} redirectUrl & prompt = select_account

1

Per me, https://accounts.google.com/logout non funziona. Ma il https://accounts.google.com/o/oauth2/revoke?token=TOKEN funziona bene, usando il semplice window.fetch(url), non con hrome.identity.launchWebAuthFlow.

+0

grazie, fammi provare! –

Problemi correlati