자동로그인 하여 접속한 회원 확인 방법
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.4 |
안녕하세요.
기존에 로그인 후 작동하는 애드온을 만들어 두었는데
자동로그인 설정해둔 인원은 동작하지가 않네요.
혹시 자동 로그인 설정해 둔 인원이 첫페이지 접속하였을때 작동하는 구문 같은게 있을까요?

톰캣
Lv. 11
시대의 흐름에 뒤떨어지지 않도록 아주 천천히지만 노력하고 있습니다.
댓글 11
요고 설정 하셨나요?
procAutoLogin 이런건 없는것 같더라구요
자동로그인 되었을 때는 member.doAutoLogin (after) 트리거가 호출되니
애드온에서 이 트리거를 잡아서 처리하세요.
답변 감사합니다.
if(($called_position == 'after_module_proc' && Context::get('act') == 'procMemberLogin') || Context::get('act') == 'procMemberDoAutoLogin'){
아마 이방식은 아닐것 같은데
조금만 더 상세히 답변 부탁드려도 될까요?
https://xetown.com/tips/1373435
우선은 이것좀 더 연구하고 있겠습니다.
아니면 위 글처럼
if(!function_exists('addon_wst_addon_name_trigger'))
{
function addon_wst_addon_name_trigger($args)
{
// Trigger Code...
return $args;
}
}
// 트리거 등록
$oModuleController = getController('module');
$oModuleController->addTriggerFunction('member.doAutoLogin', 'after', 'addon_wst_addon_name_trigger');
이방식이 맞을까요?
원칙적으로 맨 마지막 3줄 방식이 맞습니다.
그런데 생각해 보니 자동로그인 처리하는 시점이 애드온 최초 실행 시점(before_module_init)보다 먼저여서 애드온으로는 저 트리거를 잡을 수가 없겠네요. 트리거를 미리 등록해 놓을 수 있는 모듈이 필요합니다.
애드온에서
if(!function_exists('addon_wst_addon_name_trigger'))
{
function addon_wst_addon_name_trigger($args)
{
// Trigger Code... 여기에 코드 삽입
return $args;
}
}
이방식으로 하면 트리가가 작동시 삽입된 코드가 동작하는것으로 이해해도 될까요?
애드온에서 백날 함수 선언해 봤자 모듈에서는 거들떠보지도 않아요.
모듈에서 스키마로 테이블 생성하는것 까지는 성공했지만
모듈에서 hello world 띄우는 것도 실패해서... 난관이 많네요.
다른 방식으로 접근할 수도 있어요.
자동로그인은 새로운 세션이 시작되는 시점에 일어나는 일이거든요. 방금 접속한 새로운 세션이고, 로그인 화면으로 이동하거나 로그인 폼을 제출한 적도 없는데 이미 로그인되어 있다? 그러면 자동로그인되었을 가능성이 높지요.
if ($_SESSION['is_new_session'] && Context::get('is_logged'))
{
// 자동로그인됨
}
이런 식으로 판단하면 될 것 같은데, 얼마나 정확한지는 테스트해 봐야...
세션 삭제를 해도 반응이 없는것으로 보아 작동이 안되는것 같습니다.