What is the correct way to login and register?

0

I have two Activity, the main MyActivity and LoginActivity, how do I get the application to detect logged-in users when I open the application? And how do you do when the user presses the back button, the Activity LoginActivity does not return to t

    
asked by anonymous 24.10.2014 / 22:59

2 answers

1

One way to do this is:

public class AtividadeInicial extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        exibeTelaPrincipalOuSolicitaLogin();
        finish();
    }

    private void exibeTelaPrincipalOuSolicitaLogin() {
        Intent intent = new Intent(this, usuárioEstáLogado() ? AtividadePrincipal.class : AtividadeLogin.class);
        startActivity(intent);
    }

    private boolean usuárioEstáLogado() {
        // Sua implementação que retorna se o usuário está logado ou não,
        // obtida por exemplo verificando se o token de autenticação
        // guardado em SharedPreferences é diferente de null.
    }
}

If you preserve authentication between Web Services calls through a token that has time to expire on the server, the login condition may become invalid if the user is left a long time without navigating the application and the token expires. In this case it may be necessary to close all% open% and request login again, which can be done by calling the Activities method below:

public abstract class AtividadeEmQueOUsuárioEstáLogado {
    protected void efetuarLogoffEVoltarParaATelaDeLogin() {
        invalidarTokenDeAutenticação();
        fecharTodasAsTelasEAbrirTelaDeLogin();
    }

    private void invalidarTokenDeAutenticação() {
        // Sua implementação que invalida o token atual
        // (por exemplo setando-o para null)
    }

    private void fecharTodasAsTelasEAbrirTelaDeLogin() {
        Intent intent = new Intent(this, AtividadeLogin.class); // ou AtividadeInicial.class
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
    }
}

public class AtividadePrincipal extends AtividadeEmQueOUsuárioEstáLogado {

    public métodoQualquer() {
        if (chameiUmWebServiceEConstateiQueOTokenExpirou) {
            efetuarLogoffEVoltarParaATelaDeLogin();
        }
    }
}

You may want to make the methods efetuarLogoffEVoltarParaATelaDeLogin() and usuárioEstáLogado() globally accessible so you can use them elsewhere, including them in a conventional class or subclass of invalidarTokenDeAutenticação() and eventually making them static ( Application ).

    
25.10.2014 / 04:36
0

Dude, you can save the user to the sqlite database.

And for the back button, you can use a class called Intent, in which case when you click the back button VC does something like: intent = new intent(minhaactivity.class) startactivity(intento);// isso ira abrir outra activity

Official doc example: link

    
24.10.2014 / 23:11