안녕하세요.
기존에 로그인 후 작동하는 애드온을 만들어 두었는데
자동로그인 설정해둔 인원은 동작하지가 않네요.
혹시 자동 로그인 설정해 둔 인원이 첫페이지 접속하였을때 작동하는 구문 같은게 있을까요?
PHP | PHP 7.4 |
---|---|
CMS | Rhymix 2.1 |
안녕하세요.
기존에 로그인 후 작동하는 애드온을 만들어 두었는데
자동로그인 설정해둔 인원은 동작하지가 않네요.
혹시 자동 로그인 설정해 둔 인원이 첫페이지 접속하였을때 작동하는 구문 같은게 있을까요?
답변 감사합니다.
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 ($_SESSION['is_new_session'] && Context::get('is_logged'))
{
// 자동로그인됨
}
이런 식으로 판단하면 될 것 같은데, 얼마나 정확한지는 테스트해 봐야...
요고 설정 하셨나요?