0
전자 메일과 암호를 인증하는이 코드가 있습니다. 유효한 자격 증명을 사용하는 경우 앱을 실행하자마자 인증됩니다. 하지만 로그 아웃 한 후 일부 잘못된 자격 증명으로 다시 로그인하려고 시도하면 인증 성공이 계속되고 예외가 발생하지 않습니다. 전송 도구가 캐시 된 이전 데이터 (올바른 자격 증명)를 유지하고 다시 로그인 할 때 사용하는 것 같습니다. 나는 체크했다. 변수 "email"과 "password"에 문제가 없다. 잘못된 자격 증명을 먼저 시도하고 나중에 유효 한 자격 증명을 시도하면 반대가 발생합니다. 무슨 일이 일어나고 있는지 당신들은 알고 있습니까?유효하지 않은 자격 증명으로 인증 성공을위한 자바 메일 전송
이것은 코드 조각입니다.
고마워요!
public void check_user(final String email, final String password){
final ProgressDialog pb = new ProgressDialog(this);
pb.setIndeterminate(true);
pb.setTitle("Verificando usuário");
pb.setMessage("Por favor, aguarde...");
pb.setCancelable(false);
pb.show();
Thread t = new Thread(new Runnable() {
@Override
public void run() {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.office365.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "587");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
//Authenticating the password
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(email, password);
}
});
try {
transport = session.getTransport("smtp");
transport.connect(email, password);
transport.close();
} catch (Exception e) {
e.printStackTrace();
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(LoginActivity.this, "Usuário e/ou senha inválidos.", Toast.LENGTH_LONG).show();
pb.dismiss();
}
});
return;
}
SharedPreferences.Editor data = getSharedPreferences("user_data", 0).edit();
data.putString("username", email).commit();
data.putString("password", password).commit();
data.putBoolean("isLogged", true).commit();
runOnUiThread(new Runnable() {
@Override
public void run() {
get_in();
}
});
}
});
t.start();
}
, 당신에게 빌을 너무 많이 주셔서 감사합니다! 그게 내 문제를 해결 했어! –