마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

로그인 아이디 중복체크

0 추천

로그인 중복체크를 코딩 하고 있는데요..

구글링을 수십번 넘게해도 이부분이 해결이 안되어 이렇게 질문을 드리게 되었습니다.ㅠㅠ

DB에 user_id를 UNIQUE로 설정하였을 경우 관리자 시선에서는 로그인 중복을 막을 수 있는데,

사용자 시선에서는 로그인 중복이 된것을 알아차릴수가 없네요..

php 구문을 바꿔야 하는지 도움 요청드립니다.

현재 시점에서는 무엇을 입력하든 else  if부문만 실행됩니다.

해당 코드는 대략 이렇습니다.

private EditText user_id;

user_id = (EditText) findViewById(R.id.user_id);
버튼 private void 변수명{
if("user_id" == user_id.getText().toString().trim()){
    Toast.makeText(getApplicationContext(),"아이디가 중복입니다.",Toast.LENGTH_SHORT).show();
    return;
}
else if("user_id" != user_id.getText().toString().trim()){
    Toast.makeText(getApplicationContext(),"사용해도 되는 아이디입니다.",Toast.LENGTH_SHORT).show();
    return;
}}
gustj258 (190 포인트) 님이 2021년 4월 16일 질문

2개의 답변

0 추천
 
채택된 답변
로그인 중복 체크는 백엔드가 핵심입니다.. 백엔드가 관련된 모든 처리를 하고 프론트엔드는 서버의  API를 호출했을 때 세션이 중복이라면 세션중복이라는 에러를 클라이언트 쪽에 보내주면 되고, 클라이언트는 이 응답에 따른 처리만 하면 됩니다.

해당 기능은 서버 API 레벨에서 먼저 작동을 하도록 설계가 되어야 합니다.

옉를 들면,

Request:

userId: user1

Respone:

success: true/false
payload:
   suggestions: [suggesteUser1, secureUser1]
errorCode: 1001,
errorMessage:"The user ID already in use"

 위의 형태로 서버에서 응답을 받는 다고 가정하면,

UserIdAvaialitity avaiablitiy = checkUserIdAvailability("user1");
if (!avaiablitiy.success) {
     // ID가 중복입니다.
     reurn;
}

// 사용해도 되는 아이디입니다.
spark (224,800 포인트) 님이 2021년 4월 16일 답변
gustj258님이 2021년 4월 19일 채택됨
감사합니다. 이 코드 보고 다시한번 시도해볼게요!
0 추천
자바에선 String 비교는 equals 함수를 써야죠.

일부 파이썬은 == 가 문자열 비교까지 하지만

자바는 같은 객체 인지만 비교하고 문자열 비교는 안합니다.
Will Kim (43,170 포인트) 님이 2021년 4월 18일 답변
생각해보니 널값일때 입력하라는 문구에 이퀄스를 썼었네요 ㅎㅎ..
if("user_id".equals(user_id.getText().toString().trim())){
            Toast.makeText(getApplicationContext(),"아이디가 중복입니다.",Toast.LENGTH_SHORT).show();
            return;
        }
        else if("user_id".indexOf(user_id.getText().toString().trim()) == -1){
            Toast.makeText(getApplicationContext(),"사용해도 되는 아이디입니다.",Toast.LENGTH_SHORT).show();
            return;
        }
이렇게 해도 무엇을 입력하든 else if만 적용되네여 ㅠㅠ;
브레이크 포인트 걸어 놓으시고 디버깅을 해보세요. 로직상으로는 될 것 같은데, 실제로 어떤 값이 들어오는지 디버거에서 확인해 보세요.
감사합니다.. 디버깅이 잘 안되네여 ㅠㅠ;
...