Q&A

자동로그인에 관해서 문의사항

2025.03.22 18:47
181
0
CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 8.2

일반적인 로그인은 procMemberLoign 을 거쳐  doLogin 함수가 실행되고
포인트 모듈에서 member.doLogin 트리거에 대해  triggerAfterLogin 으로 해서 로그인 포인트 점수를 주게 되는데

 

자동로그인은 doAutologin 에 의해서 실행 후 doLogin 이 아니라 Session.php 내의 login 함수를 통해 세션이 생성이 되는데
그러면,   member.doLogin  트리거를 사용하지 않으니  triggerAfterLogin 가 실행이 안 될듯한데
그러면 자동로그인을 통해서는 로그인 포인트 점수를 안 주나요?

 

또한 doLogin 함수에서 마지막 로그인날짜와 ip 정보를  updateLastLogin  쿼리로 업데이트하는데
자동로그인은 session 정보의 last_login 만 변겨할뿐,  실제 DB member 테이블의 last_login 을 변경하는 부분이 없는듯한데
자동로그인 으로 로그인이 유지될때는 last_login 값이 갱신이 안 되나요?

 


그러면  member.doAutoLogin 트리거의 after 를 이용해  이런정보들 갱신하는 기능들이 필요한가요?

자동로그인시,  procMemberLoign 처럼,   member 의 doLogin 함수를 이용하게하거나 
(아마 필요정보가 부족해서 그냥 자체 login 처리할듯하긴한데 )

 

아니면 autoLogin 이 마무리 되었을때 
지금의  ModuleHandler::triggerCall('member.doAutoLogin', 'after', $trigger_obj);  가 아니라  ( 이것도 필요할 수 있으니 놔두고 )
일반 doLogin 을 그대로 활용할 수 있게
ModuleHandler::triggerCall('member.doLogin', 'after', $member_info);  이  autologin 쪽에도 있어야 맞을듯한데..
( member.doLogin 이라고 triggerCall 이 되어있어도..   doAutoLogin 함수에 넣어도 되는거 아닌가요?   이 콜이 doLogin 에서만 되나요? )

 

doLogin 에 대한 트리거를 doAutoLogin 에 대해서도 다 만들어야하나.. 싶어서 여쭤봅니다

sejin7940 Lv. 6
2008년 정식 사업자등록 후 17년동안 오직 라이믹스/XE 만을 제작해온 XE 전문 제작업체입니다.
순수 라이믹스/XE 기반의 포트폴리오만 350개, 자체 개발/보완 모듈들의 기능개발 내역이 1800가지를 넘습니다.
라이믹스/XE 개발로는 국내 최다 경험을 지닌 최고의 전문업체입니다

댓글 1

  • 15시간 전 #1904753

    로그인시에는 member.doLogin, 자동로그인시에는 member.doAutologin 이벤트가 발생합니다. 로그인/자동로그인 구분 없이 양쪽 모두 캐치하고 싶다면 양쪽 모두 트리거를 걸면 되고, 둘 중 하나만 잡고 싶다면 하나만 걸 수도 있습니다.

     

    자동로그인시에도 last_login 컬럼이 업데이트됩니다. doAutologin() 메소드 마지막 부분을 자세히 보시면 updateLastLogin 쿼리를 실행하는 곳이 있습니다.

     

    단, 자동로그인이라는 것은 어디까지나 세션 쿠키가 날아갔을 때 다른 쿠키를 사용하여 로그인 상태를 복원해 주는 기능이므로, 크롬처럼 세션 쿠키를 상당히 오래 유지시켜 주는 브라우저에서는 자동로그인이 작동하는 간격이 의외로 길 수도 있습니다. 창을 닫으면 없어져야 하는 세션 쿠키가 일 주일씩 끈질기게 살아 있는 상황도 더이상 드물지 않더군요.