저는 라르게덴님의 프로알라 에디터를 사용 중이고, Invisible reCAPTCHA - XE 애드온을 사용 중입니다.

이 애드온은 구글 리캡차 v2 Invisible reCAPTCHA 인데 특정 act일 경우만 동작을 합니다. 

(이전에는 코노리님의 동일한 기능의 리캡차 애드온을 사용했었는데, 프로알라 에디터를 쓰면서 이 애드온으로 변경했습니다.)


이퀴어 레이아웃의 경우 특정 ACT에서 로그인이 동작하는게 아니라 기본 페이지 상태에서 로그인 모달 팝업이 뜨는데,

위 기능이 동작하지 않아 추가해봤습니다.


수정한 파일은 다음과 같습니다.

layouts/equeer_layout/components/login-modal.html


수정방법은 다음과 같습니다. 이 순서대로 진행했습니다.

1) FORM 태그에 ID 넣기

2) 로그인 버튼에 사이트키 넣기

3) 스크립트 넣기


login-modal.html 파일을 다음과 같은 방법으로 코드를 수정해줍니다. 

(스크립트 코드는 다양할 수 있으나 여기서 소개해드리는 내용은 처음 해볼 수 있는 간단한 내용으로 구성된 스크립트입니다.)


1) FORM 태그에 ID 넣기

id='demo-form'만 추가해줬습니다,

<form ruleset="@login" action="{getUrl()}" method="post" autocomplete="off" id='demo-form'>

2) 로그인 버튼에 사이트키 넣기 

class에 g-recaptcha를 넣고, data-sitekey와 data-callback을 추가해줬습니다.

<button type="submit" class="g-recaptcha eq button button-primary button-expand button-rounded button-shadow margin-bottom-small" tabindex="4" data-sitekey="사이트키" data-callback='onSubmit'>로그인</button>

3) 스크립트 넣기

하단에 다음 코드를 추가해줬습니다.

<!--@if(!$act=='dispMemberSignUpForm' || !$act=='dispMemberLoginForm')-->
<script type="text/javascript" charset="utf-8">
  function onSubmit(token) {
    document.getElementById("demo-form").submit();
  }
</script>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<!--@end-->

특정 ACT일 경우 중복으로 들어가서 이렇게 IF 문으로 감싸줬습니다.


자 이제 일반 페이지에서도 로그인이 잘 동작하게 됩니다.


참조사이트 

1) 구글 리캡차 

https://developers.google.com/recaptcha/

2) 구글 리캡차 개발자문서

https://developers.google.com/recaptcha/docs/invisible?hl=ko

 
댓글은 로그인 사용자만 작성 가능합니다. 로그인하기