Вы всегда получаете ответное совпадение (200) и вход в систему, даже если я указал неверную кредитную форму в android форме входа? - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь проверить пользователя с помощью json, используя retrofit2 в android, но он всегда дает доступ, даже если я ввел неправильный пароль и номер телефона.

JSON

 {
  "code": 200,
  "content": {
    "parents_id": 13,
    "parents_name": "Rafaqat Ali",
    "parents_cellno": "03016138728",
    "parents_password": "1234",
    "branch": 41,
    "school_name": "The Scholars College of Sciences Commerce ZWL",
    "school_contact": "03012370304",
    "school_address": "Old Chawinda Road Zafarwal 03012370304",
    "school_logo": "https://apps.eduportal-pk.com/EduPortal/Production/img/10832thescholar.png",
    "school_youtube": "https://www.youtube.com/channel/UCfUZ6NIGwShecxprTrCLsAQ",
    "school_fb": "https://web.facebook.com/The-Scholars-College-Of-Sciences-and-Commerce-Zafarwal-391658255028642/"
  }
}

Класс модели:

public class ResLogin {

@SerializedName("code")
@Expose
private Integer code;

public Integer getCode() {
    return code;
}

public void setCode(Integer code) {
    this.code = code;
}

}

Интерфейс API:

public interface APIServices {
@FormUrlEncoded
@POST("EduPortal/Production/apis/services.php?call=parents_authen&cellno=03016138728&password=1234")
Call<ResLogin> doLogin(@Field("parents_cellno") String parents_cellno, @Field("parents_password") String parents_password);

}

MainActivity:

   private void sendLoginReqWithRetrofit(String parents_cellno, String parents_password) {
    // login_progress.setVisibility(View.VISIBLE);
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("https://apps.eduportal-pk.com/")
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    APIServices services = retrofit.create(APIServices.class);
    Call<ResLogin> loginCall = services.doLogin(parents_cellno, parents_password);
    loginCall.enqueue(new Callback<ResLogin>() {
        @Override
        public void onResponse(Call<ResLogin> call, Response<ResLogin> response) {
            //login_progress.setVisibility(View.GONE);
            if (response.isSuccessful()) {
                ResLogin resLogin = response.body();
                if (resLogin != null && resLogin.getCode() == 200) {

                    Toast.makeText(getApplicationContext(), "login successful", Toast.LENGTH_LONG).show();
                    //open your next screen
                } else {
                    Toast.makeText(getApplicationContext(), "login failed", Toast.LENGTH_LONG).show();
                }
            }
        }

        @Override
        public void onFailure(Call<ResLogin> call, Throwable t) {
            // login_progress.setVisibility(View.GONE);
            Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_LONG).show();
        }
    });

Я новичок в android разработке, а также с остальными Api, поэтому я буду очень благодарен с вашей помощью!

1 Ответ

0 голосов
/ 14 апреля 2020

проверьте ваш API с почтальоном. Если сервер отправляет всегда 200, то он будет входить всегда. И если вы проверите код состояния 200, это может войти в вас всегда.

...