묻고답하기
사용자 아이디를 변경하고 싶은 경우
2014.01.02 16:15
XE를 설치한 후 아무생각없이 그냥 사용을 한 후에, 나중에 가서 로그인 방식을 이메일이 아닌 아이디 방식으로 변경을 해봤습니다.
그랬더니, 지금까지 가입한 사용자들 모두에게 임의의 아이디가 발급되어 버린 것으로 보입니다. (t141 같은 t+nnn 형식으로 발급됨)
물론, 사용자들은 당연히 각기 사용하고 싶은 고유의 아이디가 있을 것입니다.
그래서, 몇가지 질문을 드리고자 합니다.
1. 어드민이 모든 사용자들의 아이디를 수정해주려 한다면, DB에서 어디를 수정하면 되는지요?
2. 위에서 물은 아디 변경 작업에서, 딱 한군데만 고치면 다른 곳에는 영향없이 잘 작동하는지요? (추가 및 변형을 가한 모듈은 없습니다)
3. 사용자가 스스로 아이디를 변경할 수 있는 방법은 없는지요? 누군가 한번쯤 코딩해봤을만한 기능일 것도 같아서, 찾아서 저도 적용해보고 싶습니다.
읽어주셔서 감사합니다.
댓글 3
-
enzoy
2014.01.03 11:58
-
KrteamENT
2014.01.03 12:14
xe_member>User_id 수정하시면 됩니다.
Admin에서 수정하기에는 이것저것 보안이슈도 있어서 않하는거 같더군요..ㅎㅎ
-
sejin7940
2014.01.03 12:16
대부분의 기능을 user_id 가 아닌, member_srl 을 기준으로 하기에
member 테이블의 user_id 를 강제변경해도, 사실 영향은 없습니다.다만, 게시판이나 문서전체 내역등에서 user_id 기준으로 하는 검색은 하나도 작동을 안 하겠죠
documents 테이블에 user_id 를 기록하고 있거든요 (단지 권한등은 member_srl 기준으로 조회하기에 문제가 안 되는거죠)그리고 이메일=>ID 로 변경이 힘든 이유가.
이메일 가입은, ID 를 추가적으로 받는 걸 귀찮아하는 유저를 위한, 한단계를 줄인 개념인데
test@nate.com 과 test@naver.com 이 각각 등록가능한 구조가 되기에
결국 메일의 앞부분만 ID 로 처리할 수도 없는 상황이 발생합니다.
결국 ID 를 자동으로 예쁘게 생성할 수가 없어요 ( ID 가 중복되는 현상이 얼마든지 나올 수 있기에)
따라서.. 처음부터 ID 를 기준으로 할지 이메일을 기준으로 할지 잘 생각해보고 운영하는 수 밖에 없습니다.
회원전체의 메일 앞부분이 안 겹치는게 확실하다면... (query 잘 돌려서 확인해보시면 될듯)
이메일의 앞부분을 user_id 가 되도록 query를 짜서 업데이트하고
해당 member_srl 기준으로 documents 등의 user_id 를 다 바꾸면 제대로 ID 체계로 전환도 가능합니다.
너무 기초적인 질문이라서 답이 안달리는가본데...
phpMyAdmin 깔고 DB에 접근해서 xe_member에 있는 user_id를 변경하니 별 문제없이 잘 되는 것 같습니다.
(구조가 복잡하고 설계가 스파게티인 경우 이렇게 DB 직접 고치면 뭔가 꼬이는 경우가 있을까봐 질문 올리고 기다렸었죠 ^^)
그런데, 처음 설치 직후에 로그인방식을 변경해야하는걸 몰랐던 어드민들이 나중에 이메일이 아닌 아이디방식으로 전환하고 싶을 때에 t+nnn 식으로 강제되는 아이디를 사용자친화적인 아이디로 바꾸는 통로 및 UX가 필요하지 않을까 싶은 생각이 듭니다.
DB 상에서 아이디 문자열이 사용중에 바뀜으로 인해 끼쳐질 다른 오류가 없다면, 어드민 창에서 사용자의 아이디를 바꿀 수 있는 UX도 있는게 낫지 않을까 하는 생각이 듭니다.