요새 계속 잠자리가 뒤숭숭해서 계속 새벽에 깨는데, 다시 잠을 못자서 그 시간에 코딩을 해보았습니다;;
오늘 만든건 아이디/비밀번호 입력하지 않고 계정 변경하는 모듈입니다
▲ 관리자 계정(@matthew218)과 일반 유저 계정(@t841)을 오가는 모습
(너무 빠르게 스위칭되어서 합성같아보이네요 ㅋㅋ)
구글 로그인 같은거 생각해보시면 되는데요
미리 여러 개의 계정에 로그인을 해두면 이동할 수 있는 계정 목록에 추가가 되고요, 유저는 단순 클릭으로 계정을 스위치 할 수 있게 되는거죠
개발하면서 라이믹스의 AutoLogin 기능을 참고했는데요, 로그인 쪽이 계정 보안문제와 직결되기 때문에 머리를 굴리면서 설계를 해봤습니다
우선 계정에 로그인 할 때마다 로그인 키를 생성/갱신하며, 이 값을 httpOnly/Secure 쿠키에 JWT로 저장합니다.
그리고 서버에서는 이 쿠키를 읽어서 변경할 수 있는 계정 목록을 출력합니다.
로직 자체는 간단한데, 라이믹스에서 로그아웃/로그인시에 세션 처리때문에 구현이 조금 어렵더라고요
Rhymix\Framework\Session::login($member_srl, false); Rhymix\Framework\Session::refresh();
저는 별도 로그아웃 과정 없이 이렇게 $member_srl만 스위치 해주었는데 큰 문제가 있을까 싶습니다
아무튼 한밤중에 삘받아서 만들어보았는데요, 여러 계정 번갈아가면서 테스트 용도로 사용하거나, 관리자 아이디와 일반 유저 아이디를 번갈아가면서 사용할 때 유용하게 사용될거 같습니다.
(특히 다중 계정 이용해서 사이트 북적북적하게 만들어보려는 관리자님들도 사용하기 좋겠네요 ㅋㅋ)
+) 딱 하나 우려되는건 쿠키 탈취로 인한 계정 해킹인데.. 서버쪽에서 할 수 있는건 다 해준거 같고, 클라이언트 쪽에서 해킹당하는거면 어쩔수 없죠..
JWT도 똑같은 원리인데 해킹 소리 안들리는거 보면 괜찮은거 같기도 하고요
(?)XETwon에서 이모듈을 싫어합니다 (참고로 여기는 다중계정 금지입니닼ㅋㅋㅋㅋ)엌ㅋㅋ