자동로그인에 관해서 문의사항
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 에 대해서도 다 만들어야하나.. 싶어서 여쭤봅니다
순수 라이믹스/XE 기반의 포트폴리오만 350개, 자체 개발/보완 모듈들의 기능개발 내역이 1800가지를 넘습니다.
라이믹스/XE 개발로는 국내 최다 경험을 지닌 최고의 전문업체입니다
댓글 1
로그인시에는 member.doLogin, 자동로그인시에는 member.doAutologin 이벤트가 발생합니다. 로그인/자동로그인 구분 없이 양쪽 모두 캐치하고 싶다면 양쪽 모두 트리거를 걸면 되고, 둘 중 하나만 잡고 싶다면 하나만 걸 수도 있습니다.
자동로그인시에도 last_login 컬럼이 업데이트됩니다. doAutologin() 메소드 마지막 부분을 자세히 보시면 updateLastLogin 쿼리를 실행하는 곳이 있습니다.
단, 자동로그인이라는 것은 어디까지나 세션 쿠키가 날아갔을 때 다른 쿠키를 사용하여 로그인 상태를 복원해 주는 기능이므로, 크롬처럼 세션 쿠키를 상당히 오래 유지시켜 주는 브라우저에서는 자동로그인이 작동하는 간격이 의외로 길 수도 있습니다. 창을 닫으면 없어져야 하는 세션 쿠키가 일 주일씩 끈질기게 살아 있는 상황도 더이상 드물지 않더군요.