2013-04-19 3 views
11

Ho integrato Facebook con la mia applicazione per pubblicare contenuti. Stava funzionando fino alla versione 1.2 dell'applicazione, ma ora ricevo un avviso di sicurezza subito dopo il login come muggito.Facebook avvisa la sicurezza: considera l'URL sopra come se fosse la tua password e non condividerlo con nessuno

La cosa strana di questo avviso di sicurezza è che funziona correttamente per uno dei miei account di Facebook senza alcun avviso come in precedenza, ma ottengo questo avviso con il mio altro account. Ho attaccato un colpo di schermo del problema:

enter image description here

+0

Controlla la mia risposta su questo link. potrebbe essere che risolverà il tuo problema. http://stackoverflow.com/questions/16033462/security-warningplease-treat-the-url-above-as-you-would-your-password-and-do-n/16192846#16192846 – Zac24

risposta

1

Dopo un lungo periodo di tempo spendere su Internet per cercare questo problema. Finalmente ho avuto la risposta a riguardo.

login per account Facebook> Vai Privacy Impostazione> Clicca su tag di sicurezza sul lato sinistro di Page> poi Disabilita esplorazione sicura

Ora Cambia la tua simulatore e quindi eseguire l'applicazione e di nuovo il login funzionerà sicuramente

+0

ha provato a non funzionare cosa fare ? lo stesso errore –

+0

ha funzionato per me. Bel lavoro. –

3

Disabilitare la navigazione sicura non vale la pena, dato che non possiamo fare in modo che tutti gli utenti disabilitino la navigazione sicura.

Ho risolto. Controllare la mia risposta qui. Escape from Facebook security Warning

0

La risposta breve è che il problema può essere risolto se si utilizza il proprio redirect_uri anziché quello standard di Facebook. Quando viene restituito il token di accesso, la pagina standard www.facebook.com/connect/login_success.html ha un timer che modificherà l'URL prima che l'app possa recuperare il token di accesso.

Questo problema può verificarsi in relazione alla latenza di Internet. Due clienti hanno segnalato problemi con questo in Myanmar e uno nel Regno Unito. Nessun problema per nessun altro. Supponendo che si autorizza in questo modo:

https://www.facebook.com/v2.10/dialog/oauth?client_id=999999999999999&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token&scope=user_photos,user_events&display=popup 

Per la redirect_uri di default (https://www.facebook.com/connect/login_success.html), facebook restituisce l'access_token nei parametri dell'URL, ma il corpo HTML per quella pagina contiene due timer:

Success <br/> 
<b id="warning" style="display: none; color:red"> 
    SECURITY WARNING: Please treat the URL above as you would your password and do not share it with anyone. 
    See the <a href="http://l.facebook.com/l.php?u=xxxxxxx" target="_blank" data-lynx-mode="hover">Facebook Help Center</a> for more information. 
</b> 
<script type="text/javascript"> 
    document.domain = 'facebook.com'; 
    if (window == top) { 
     setTimeout(function() { document.getElementById("warning").style.display = "block"; }, 2000); 
    } 
    setTimeout(function() { if (window.history.replaceState) { window.history.replaceState({}, "", "\/connect\/blank.html#_=_"); } }, 2000); 
</script> 

Quando uno dei due timer scocca, cambierà l'URL che rimuove il token di accesso. Quindi, finché lo prendi prima che cambi, tutto funziona. Nel nostro caso, stavamo usando un controllo del browser incorporato sotto Windows e monitorando i collegamenti navigati. Finché il codice può ricevere un evento di navigazione che contiene il token di accesso prima che si verifichi questo timeout, allora tutto ha funzionato. Non siamo mai stati in grado di determinare in che modo la latenza della connessione Internet e forse qualche combinazione del computer lento di un utente ha causato questo problema, ma questo l'ha risolto.

Nelle impostazioni di accesso di Facebook per l'app di Facebook, aggiungere i propri URI all'elenco di URI di reindirizzamento OAuth validi. Se si reindirizza alla propria pagina html, è possibile evitare il timeout di Facebook.