Fazer login em um WebService via Android

E ai pessoal tudo tranquilo?

A minha dúvida é a seguinte:

Estou tentando criar uma tela de login no Android sendo que os dados cadastrados estão em um banco de dados Mysql, para estabelecer a comunicação eu tenho um WebService Rest funcionando, a questão é: estou enviando um GET para o meu servidor se ele encontrar os dados que eu solicitei ele me retorno o login e senha depois eu pego esses dados e comparo com os que foram digitados pelo usuário e faço a “autenticação”, creio que essa não seja a melhor maneira de fazer uma autenticação.

De que forma eu poderia trabalhar esse código para fazer uma autenticação de fato.

Gostaria também que logo após o login tiver sido efetuado na tela seguinte aparecesse o nome da pessoa que fez o login. Exemplo: “Bem vindo fulano”.

Segue abaixo minhas classes do cliente Android:

Classe UsuarioREST

public class UsuarioREST { 
	
	private static final String URL_WS = "http://10.1.1.103:8084/ServidorWS/webresources/Usuario/";
    
	
	public Usuario getUsuario(String login) throws Exception {

	     String[] resposta = new Webservice().get(URL_WS+"Usuario/buscarLogin/"+login);
	     
	     if (resposta[0].equals("200")) {
	         Gson gson = new Gson();
	         Usuario usuario = gson.fromJson(resposta[1], Usuario.class);
	         return usuario;
	     } else {
	         throw new Exception(resposta[1]);
	     }
	}

Classe Webservice

public class Webservice {
		
	private HttpEntity entity;

	
	public final String[] get(String url) {

	     String[] result = new String[2];
	    
	     try {
	    	 HttpGet httpget = new HttpGet(url);
		     HttpResponse response;
	         response = HttpClient.getHttpClientInstace().execute(httpget);
	         entity = response.getEntity();

	         if (entity != null) {
	             result[0] = String.valueOf(response.getStatusLine().getStatusCode());
	             InputStream instream = entity.getContent();
	             result[1] = toString(instream);
	             instream.close();
	             Log.i("get", "Resultado para o post JsonPost : " + result[0] + " : " + result[1]);
	         }
	     } catch (Exception e) {
	         Log.e("NGVL", "Falha ao acessar Web service", e);
	    	 //Log.e("NGVL", e.toString(), e);
	         result[0] = "0";
	         result[1] = "Falha de rede!";
	     }
	     return result;
}

Classe MainActivity

public class MainActivity extends Activity {
	
	//private String id;
	private String login;  
	private String senha; 

	

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        
        final EditText editLogin = (EditText) findViewById(R.id.txtLogin);
        final EditText editSenha = (EditText) findViewById(R.id.txtSenha);
        final TextView text = (TextView)findViewById(R.id.textView1);
        Button btnLogar = (Button) findViewById(R.id.butLogar);
                      
        
        btnLogar.setOnClickListener(new View.OnClickListener() {
			
		@Override
		public void onClick(View v) {		

		    AsyncTask<String, Void, Usuario> atBuscaUsuario = new AsyncTask<String, Void, Usuario>() {
		    ProgressDialog progressDialog;

			        
	        @Override
	        protected Usuario doInBackground(String... params) {
	        	login = editLogin.getText().toString();
				senha = editSenha.getText().toString();
	            try {
	            	//testo se os campos login ou senha estão vazios
	            	if(editLogin.getText().toString().trim().equals("")){ 
	            			gerarToast("Digite um login!");
	            	}else
	            		if(editSenha.getText().toString().trim().equals("")){
	            			gerarToast("Digite uma senha!");
	            	}else{
	            		UsuarioREST rest = new UsuarioREST();
	            		Usuario usuario = rest.getUsuario(login);
	            		return usuario;
	            	}
	            } catch (NumberFormatException e) {
	                e.printStackTrace();
	            } catch (Exception e) {
	                e.printStackTrace();
	                gerarToast(e.getMessage());
	            }
	            return null;
	        }

			        
	        @Override
	        protected void onPreExecute() {
	            super.onPreExecute();
	            progressDialog = ProgressDialog.show(MainActivity.this, "Aguarde", "Efetuando login...");
	        }
	        
	        

	        @Override
	        protected void onPostExecute(Usuario usuario) {
	            super.onPostExecute(usuario);

	            if (usuario != null) {
	            	 if(login.equals(usuario.getLogin().toString().trim()) && senha.equals(usuario.getSenha().toString().trim())){
	            		Intent i = new Intent(MainActivity.this, PedidosActivity.class);
	                	startActivity(i);
	                	 
	            	 }else{
	            		 gerarToast("Senha incorreta!");
	            	 }
	            	//text.setText(usuario.getSenha().toString().trim());
	            }

	            progressDialog.dismiss();
	        }
	    };
	    atBuscaUsuario.execute(login);
	}

			
			
	private void gerarToast(final String msg) {
	    
		MainActivity.this.runOnUiThread(new Runnable() {
	        @Override
	        public void run() {
	            Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();
	        }
	    });
	
			}//fim do metodo onClick
		
        
        
        
        });//fim do evento setOnClickListener
}