Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

안녕하세요.

 

기존에 로그인 후 작동하는 애드온을 만들어 두었는데

자동로그인 설정해둔 인원은 동작하지가 않네요.

 

혹시 자동 로그인 설정해 둔 인원이 첫페이지 접속하였을때 작동하는 구문 같은게 있을까요?

  • profile
    인증 세션 DB 사용
    요고 설정 하셨나요?
  • profile profile
    애드온이고 procMemberLogin기반으로 작동하는거라서
    procAutoLogin 이런건 없는것 같더라구요
  • profile

    자동로그인 되었을 때는 member.doAutoLogin (after) 트리거가 호출되니

    애드온에서 이 트리거를 잡아서 처리하세요.

  • profile profile

    답변 감사합니다.

    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');

     

    이방식이 맞을까요?

  • profile profile

    원칙적으로 맨 마지막 3줄 방식이 맞습니다.

     

    그런데 생각해 보니 자동로그인 처리하는 시점이 애드온 최초 실행 시점(before_module_init)보다 먼저여서 애드온으로는 저 트리거를 잡을 수가 없겠네요. 트리거를 미리 등록해 놓을 수 있는 모듈이 필요합니다.

  • profile profile
    그렇다면 모듈에 미리 트리거를 등록해두고

    애드온에서

    if(!function_exists('addon_wst_addon_name_trigger'))
    {
    function addon_wst_addon_name_trigger($args)
    {
    // Trigger Code... 여기에 코드 삽입
    return $args;
    }
    }

    이방식으로 하면 트리가가 작동시 삽입된 코드가 동작하는것으로 이해해도 될까요?
  • profile profile
    모듈이 있다면 애드온은 더이상 아무짝에도 쓸모가 없습니다.
    애드온에서 백날 함수 선언해 봤자 모듈에서는 거들떠보지도 않아요.
  • profile profile

    모듈에서 스키마로 테이블 생성하는것 까지는 성공했지만

    모듈에서 hello world 띄우는 것도 실패해서... 난관이 많네요.

  • profile

    다른 방식으로 접근할 수도 있어요.

     

    자동로그인은 새로운 세션이 시작되는 시점에 일어나는 일이거든요. 방금 접속한 새로운 세션이고, 로그인 화면으로 이동하거나 로그인 폼을 제출한 적도 없는데 이미 로그인되어 있다? 그러면 자동로그인되었을 가능성이 높지요.

     

    if ($_SESSION['is_new_session'] && Context::get('is_logged'))

    {

        // 자동로그인됨

    }

     

    이런 식으로 판단하면 될 것 같은데, 얼마나 정확한지는 테스트해 봐야...

  • profile profile
    감사합니다. 우선 반영은 해봣는데
    세션 삭제를 해도 반응이 없는것으로 보아 작동이 안되는것 같습니다.
  • profile profile
    세션삭제로는 해당사항이 없고 다음날이 되어서야 확인되네요 ㅎㅎ 잘작동합니다.