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

다중로그인 방지기능 관련 문의

0 추천
안녕하세요 . 하이브리드(cordova)로 안드로이드를 개발중이며, 서버는 spring 프레임웍을 사용중입니다.

현재기능으로 로그인시 db에 로그인정보중 디바이스 id를 저장하여, 다른폰으로 같은 계정으로 로그인시 기존에 저장된 디바이스id와 현재 디바이스id를 확인하여 맞지않을시 다른기기로 로그인한다는 메시지를 뿌려주고 로그인을 시키고있습니다.

여기서 추가 개발할것이.. 중복 로그인이 됐을경우 첫번째 기기(기존에 로그인 되어져있는 계정)에서는 다른기기로 로그인이됐다고 뿌려주고 로그아웃 시키는 기능을 만들려고합니다.

따로 세션 관리는 서버에서 안하고있습니다.. 전 개발자분이 세션은 만들어놓지않으셧더라구요..

두번째 로그인이 들어왔을경우 기존 디바이스id를 가진사용자에게 서버가 로그아웃하라고 전달을 해야될거같은데 .. 초보의 생각으로썬..기존 사용자의 기기에서 기능사용(서비스호출 시)을 했을때 디바이스id를 체크해서 결과값을 ui로 보낸뒤 로그아웃 처리를 하는건 좋지않은방법인거같은데..

구글링을 해보니 스프링 시큐리티라는 기능을 많이사용하시던데  현 개발환경엔 적용되어있지않습니다.

세션을 만져본적이없어 개발일정이 미뤄질거같은데 그래도 세션을 추가하는게 답일까요?
익명사용자 님이 2017년 9월 14일 질문

1개의 답변

0 추천
 
채택된 답변
사용자가 폰을 바꾸거나, OS 업그레이드를 하면 device id가 바뀌는데,

그럼 그런 경우에도 로그인을 배제할 것인가요? device id는 자주는 아니지만, 바뀔 수 있다는 전제조건하에서 개발을 해야 합니다.

하나의 방법은 device id가 다른 경우, 로그인시 한가지 정도 정보를 더 물오보는 것입니다.

디바이스의 로그인이 동시에 안된다는 것은 폰으로 접속 중에 태블릿으로 로그인이 안된다는 것이네요. 사용자 입장에서는 구린 로그인이죠.

또한 데스크탑으로 로그인 중에 폰으로 로그인이 안된다는 의미이기도 하죠.

주변의 훌륭한 앱중에서 그런 제약을 하는 경우는 카카오톡 정도인데, 카카오톡도 데스크탑과 휴대폰은 동시 로그인이 가능합니다.

일단 그 문제는 그런 이슈가 있다는 것만 이야기 하죠.

세션은 상대적으로 추가하기 쉽습니다. 세션 변수에 사용자 id를 넣어 놓았다가 시간이 지나면 값이 없어지기 때문에, 그런 코드를 한줄 정도 추가하면 되죠. 사용자가 사용하는 다수의 device id중에서 하나가 세팅되어 있으면 로그인을 허용해 주지 않으면 되게 로직을 추가하면 되죠.

하지만 방식은 old 합니다. 동접 디바이스를 제한하기 보다는 해당 유저가 맞는지를 체크해서 동접을 허용하는 형태의 서비스가 바람직합니다. 페이스북 메신저나 카카오톡도 멀티 로그인을 허용합니다.
Will Kim (43,170 포인트) 님이 2017년 9월 14일 답변
...