2014-09-28 13 views
7

Używam chrome.identity do logowania się do dostawcy Oauth innej firmy w rozszerzeniu chrome. Działa to dobrze podczas logowania, kiedy używam launchWebAuthFlow. Wyświetlam ekran logowania innej firmy i przekierowuję z powrotem do mojej aplikacji po zakończeniu logowania.Jak wylogować się z dostawcy o.ch chrom.identity

Jednak nie mogę znaleźć sposobu na włączenie funkcji wylogowywania w moim rozszerzeniu. Wydaje się, że nie ma funkcji do czyszczenia buforowanej, zalogowanej tożsamości. Przy następnym wywołaniu launchWebAuthFlow automatycznie zaloguje się jako pierwszy użytkownik i nie poprosi mnie o ponowne zalogowanie.

Czy istnieje sposób, aby wyczyścić zalogowany stan wtyczki chrome.identity?

+0

Czy możesz określić, o jakim dostawcy mówisz (jeśli jest to stosowne)? – Xan

+0

Dostawca jest [untappd] (https://untappd.com/api/docs), ale moje pytanie dotyczy raczej interfejsu API [chrome.identity] (https://developer.chrome.com/apps/identity). – infomofo

Odpowiedz

12

Nie jestem świadomy konkretnego dostawcy zewnętrznego. Ale spotkałem się z podobnym problemem podczas korzystania z Google Oauth za pomocą chrome.identity.launchWebAuthFlow(). mogę zalogować się na użytkownika, ale nie podpisać przy użyciu removeCachedAuthToken()

W tym przypadku, aby wylogować użytkownika, użyłem chrome.identity.launchWebAuthFlow() z wylogowania URL Google raczej niż OAuth URL

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

To zadziałało całkiem dobrze.

+0

Dziękuję, to zadziałało! – infomofo

+0

Dziękuję. Po tygodniach poszukiwań zrobiłem dla mnie sztuczkę dotyczącą WordApp OAuth2. – colbybhearn

+0

Jak mogę to zrobić, aby wylogować się z Facebooka? To nie działa dla mnie:/ –

0

Możesz wyczyścić pamięć podręczną tożsamości, używając metody chrome.identity.removeCachedAuthToken(object details, function callback).
https://developer.chrome.com/apps/identity#method-removeCachedAuthToken

+5

Powinienem wspomnieć w pytaniu, że próbowałem tej metody, ale to nie działa. Sprawdziłem na forach pomocniczych rozszerzenia Chrome i innych użytkownikach, którzy używają raportu launchWebAuthFlow w tym samym [problemie] (https://code.google.com/p/chromium/issues/detail?id=328876). Metoda removeCachedAuthToken wydaje się działać tylko wtedy, gdy używasz google jako dostawcy oauth; to nie działa z osobą trzecią. – infomofo

0

Zdarzyło mi się, że ostatnio miałem ten sam problem i ostatecznie rozwiązałem go, dodając login_hint=<new_user> i prompt=consent w adresie URL logowania.

1

Dla mnie https://accounts.google.com/logout nie działa. Ale https://accounts.google.com/o/oauth2/revoke?token=TOKEN działa dobrze, używając prostego window.fetch(url), a nie z hrome.identity.launchWebAuthFlow.

+0

miłe dzięki, pozwól mi spróbować! –

Powiązane problemy