라인 연동이 필요하여 HybridAuth를 탑재한 그누보드 소셜 로그인에 덧대어 제작해보았습니다.
라인 연동의 핵심은 라인측에 Callback Url을 지정할 때 URL에 ? <- 들어가면 안됩니다. 지정은 되는데 막상 실행해보면
invalid redirect_uri 라고 에러만 내뱉지요.
그렇다면 어떻게 해야할까요?
저같은 경우에는 아래와 같이 지정했습니다.
www.xxxxx.com/plugin/social/line.php
line.php는 index.php를 복사한 라인 연동 전용 스크립트입니다.
오리지날 콜백 URL은 아래와 같습니다.
www.xxxxx.com/plugin/social/?hauth.done=line
말씀드렸다시피 쿼리스트링 시작을 알리는 물음표가 들어가면 라인측에서 에러를 내뱉는다고 했습니다.
그러니 line.php 라는 스크립트를 하나 만들어 시뮬레이션을 한 것입니다.
line.php의 특징은
/plugin/social/includes/g5_endpoint.php의 내용을 line.php로 복사하여
--------- 아래 부분을................
if( defined('G5_SOCIAL_LOGIN_START_PARAM') && G5_SOCIAL_LOGIN_START_PARAM !== 'hauth.start' && isset($_REQUEST[G5_SOCIAL_LOGIN_START_PARAM]) ){
$_REQUEST['hauth_start'] = preg_replace('/[^a-zA-Z0-9\-\._]/i', '', $_REQUEST[G5_SOCIAL_LOGIN_START_PARAM]);
}
if( defined('G5_SOCIAL_LOGIN_DONE_PARAM') && G5_SOCIAL_LOGIN_DONE_PARAM !== 'hauth.done' && isset($_REQUEST[G5_SOCIAL_LOGIN_DONE_PARAM]) && !isset($_REQUEST['hauth_doen']) ){
$_REQUEST['hauth_done'] = preg_replace('/[^a-zA-Z0-9\-\._]/i', '', $_REQUEST[G5_SOCIAL_LOGIN_DONE_PARAM]);
}
----------- 아래의 내용으로 치환한 것입니다.
$_REQUEST['hauth_done'] = 'line';
위 내용을 모두 적용하셨다면..
/plugin/social/includes/functions.php를 여시고
-- 아래 함수를 찾아.. 아래와 같이 변경합니다.
function get_social_callbackurl($provider, $no_domain=false){
$base_url = G5_SOCIAL_LOGIN_BASE_URL;
if($provider === 'line') {
$base_url = $base_url . 'line.php';
} else {
if( $provider === 'kakao' && $no_domain ){
$base_url = '/'.ltrim(parse_url($base_url, PHP_URL_PATH), '/');
}
$base_url = $base_url . ( strpos($base_url, '?') ? '&' : '?' ).G5_SOCIAL_LOGIN_DONE_PARAM.'='.$provider;
}
return $base_url;
}
--- 다시 아래 함수를 찾아 라인의 정보를 배열에 추가해줍니다.
function social_extends_get_keys($provider)
-- 추가할 배열은 아래와 같습니다. 네이버 위나 아래에 위치하면 되겠습니다.
// Line
$r['Line'] = array(
"enabled" => option_array_checked('line', $config['cf_social_servicelist']) ? true : false,
"redirect_uri" => get_social_callbackurl('line'),
"keys" => array(
"id" => $config['cf_line_clientid'],
"secret" => $config['cf_line_secret'],
),
"display" => "popup",
"scope" => 'profile', // optional
"trustForwarded" => false
);
위 내용을 모두 적용하셨다면......
/plugin/social/Hybrid/Providers/Naver.php를 복사하여 Line.php로 명명하시고 라인측이 제공하는 OAuth2 스펙으로 맞추시면 되겠습니다.
Line.php는 따로 올리겠습니다.
-- 추가로
cf_line_clientid, cf_line_secret의 환경설정 필드를 생성하시고 라인측에서 발급하는 각각의 값을 모두 저장하셔야합니다.
관리자에서는 SNS 로그인 네이버 부분을 복사하시어 라인으로 맞게 변경하시면 설정하기 쉽게 수정하실 수 있습니다.
댓글 15개
게시글 목록
| 번호 | 제목 |
|---|---|
| 535 | |
| 534 | |
| 533 | |
| 522 |
이미지관련
문자열이미지에 각종 필터를 적용한 결과
7
|
| 521 |
이미지관련
이미지에 각종 필터를 적용한 결과
2
|
| 520 |
이미지관련
프레임이미지와 얼굴이미지 합치기
|
| 517 | |
| 516 | |
| 511 |
이미지관련
이미지 너비에 맞게 문자열의 자동 개행
2
|
| 508 | |
| 507 |
이미지관련
문자열 그릴때 패딩 주기
2
|
| 500 |
이미지관련
위치에 따른 이미지에 문자열 그리기
6
|
| 493 | |
| 490 |
이미지관련
문자열의 너비와 높이 구하기
1
|
| 486 |
이미지관련
이미지에 글자 쓰기
5
|
| 463 | |
| 461 | |
| 444 | |
| 435 | |
| 334 | |
| 304 | |
| 290 |
정규표현식
정규표현식 의 핵심. 패턴변경자 1
20
|
| 244 | |
| 233 |
정규표현식
설문조사 진행 중입니다. ~1월 28일까지
|
| 218 | |
| 217 | |
| 194 | |
| 185 | |
| 181 | |
| 156 |
정규표현식
정규표현식의 기본구조
17
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기