13

Ho un'app Android che utilizza l'SDK Android di Facebook e verrà distribuito pubblicamente.Impedire a Facebook Android SDK di visualizzare la password come testo semplice

Il mio problema è che ogni volta che un utente commette un errore di accesso con una password errata, l'SDK di Facebook cambierà il campo della password in testo normale, che ovviamente non sarà accettabile in un ambiente pubblico.

C'è un modo per sopprimere questo comportamento?

+0

Il flusso di lavoro di accesso alla finestra di dialogo (che è una visualizzazione Web) è interamente controllato sul lato server e non è presente alcun flag sul lato client per disattivarlo per quanto ne so. –

+0

@Ron Nessun problema per me su Android 3.2. Sto usando Facebook Android SDK 3.0. Penso di avere avuto un problema simile su iOS ma non stavo usando l'ultima versione dell'SDK di Facebook iOS. – Pang

+0

Se Facebook vuole che il campo non sia protetto da un errore, ciò sembrerebbe essere la scelta di Facebook, se è il campo di Facebook e non il tuo. – CommonsWare

risposta

2

La finestra di dialogo di accesso di Facebook SDK che convalida il flusso viene gestita dal lato server di Facebook. E poiché non abbiamo alcun controllo al nostro fianco per la convalida dell'accesso.

L'SDK di Facebook fornisce una vista LoginButton che è un'implementazione di visualizzazione personalizzata di un pulsante. Puoi utilizzare questo pulsante nella tua app per implementare l'accesso a Facebook. La classe LoginButton mantiene lo stato della sessione, che consente di visualizzare il testo corretto nel pulsante in base allo stato autenticato dell'utente. L'aggiunta di LoginButton al layout della tua attività è un modo rapido per implementare l'accesso a Facebook.

Insieme al pulsante di accesso, è possibile controllare altri componenti dell'interfaccia utente (UI) in base al fatto che l'utente sia autenticato o meno. L'SDK di Facebook include due classi: UiLifecycleHelper e Session.StatusCallback, per gestire gran parte della complessità legata alla gestione delle modifiche allo stato della sessione. L'attività o il frammento in cui viene mostrata la funzionalità autenticata può creare un'istanza della classe UiLifecycleHelper e passare in un listener Session.StatusCallback a cui viene notificata qualsiasi modifica dello stato della sessione. L'attività o il frammento deve chiamare i metodi pubblici che rispecchiano i metodi del ciclo di vita di un'attività o di un frammento. Questi metodi vengono utilizzati per creare, aprire, salvare e ripristinare una sessione di Facebook attiva. L'implementazione del listener Session.StatusCallback può sovrascrivere il metodo call() per rispondere alle modifiche dello stato della sessione e aggiornare di conseguenza l'interfaccia utente.

Quindi LoginButton controlla la funzionalità del pulsante di accesso ed è possibile aggiungere codice personalizzato attivato dal metodo call() per controllare altri componenti dell'interfaccia utente.

+0

Non ho provato la tua risposta, ma mi dà un'idea su come affrontare il mio problema. – Ron

+0

Sono contento che ti abbia aiutato. Grazie caro :) – GrIsHu

+0

c'è modo di crittografare la password senza pulsante di accesso? –

2

No, la finestra di login è reso da parte di Facebook e la finestra di login Mobile mostra sempre la password in testo normale al secondo tentativo - ci dovrebbe essere una nota in tal senso visibile nella finestra di dialogo quando si ricarica

Problemi correlati