WeChat OAuth 로그인 SDK
composer.json
파일에 다음 구성을 추가하세요.
"henter/wechat-oauth" : " dev-master "
그런 다음 Composer를 사용하여 SDK를 설치하십시오.
composer install
Packagist가 실패하거나 사용할 수 없고 SDK를 설치할 수 없는 경우 Satis 또는 Artifact를 사용하여 로컬로 설치할 수 있습니다. 자세한 내용은 Composer 설명서의 리포지토리를 참조하세요.
lib/Henter/WeChat
프로젝트 디렉터리에 복사한 다음 require "/path/to/sdk/OAuth.php"
Composer를 사용하여 설치하는 경우 다음 코드를 사용하여 자동으로 로드할 수 있습니다.
require ' vendor/autoload.php ' ;
SDK는 전역 네임스페이스 아래에 있습니다.
use Henter WeChat OAuth
OAuth
인스턴스화하여 초기화를 완료합니다.
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$appid
및 $secret
은 WeChat 오픈 플랫폼 애플리케이션의 고유 ID 및 비밀 키 AppSecret입니다.
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ callback_url = ' http://your_site.com/your_callback_url ' ;
$ url = $ oauth -> getAuthorizeURL ( $ callback_url );
$url
로 리디렉션합니다. 사용자가 인증을 허용하면 code
및 state
매개변수를 사용하여 $callback_url
로 리디렉션됩니다(샘플 코드는 state
매개변수를 전달하지 않음).
기본 인증 주소는 WeChat 스캔 QR 코드 페이지로 이동하는 것입니다(PC에 적용 가능). 이 방법은 사용자가 WeChat 내 웹 페이지에 접속하여 WeChat 로그인을 클릭하는 경우에는 적합하지 않습니다. WeChat에서 사용할 수 있는 승인된 주소를 얻으려면 다음 방법을 사용해야 합니다.
$ url = $ oauth -> getWeChatAuthorizeURL ( $ callback_url );
참고: 이는 WeChat 오픈 플랫폼 문서에는 언급되지 않았지만(공식 계정 플랫폼 문서에만 언급됨) 테스트 결과 오픈 플랫폼 애플리케이션에도 적용 가능한 것으로 나타났습니다.
code
매개변수를 통해 access_token
가져오기 //获取code参数
$ code = $ _GET [ ' code ' ];
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
if ( $ access_token = $ oauth -> getAccessToken ( ' code ' , $ code )){
$ refresh_token = $ oauth -> getRefreshToken ();
$ expires_in = $ oauth -> getExpiresIn ();
$ openid = $ oauth -> getOpenid ();
} else {
echo $ oauth -> error ();
}
획득이 성공하면 후속 인터페이스 호출을 위해 이 4가지 값을 저장해야 하며, 그렇지 않으면 $oauth->error()
통해 오류 정보를 얻습니다.
access_token
을 통해 API 호출 $ oauth = new Henter WeChat OAuth ( $ appid , $ secret , $ access_token );
또는
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ oauth -> setAccessToken ( $ access_token );
사용자 정보를 호출하려면 openid
전달해야 합니다.
$ userinfo = $ oauth -> api ( ' sns/userinfo ' , array ( ' openid ' => $ openid ));
그 중 sns/userinfo
API 종류입니다. 자세한 내용은 WeChat API 문서를 참고하세요.
refresh_token
을 통해 access_token
새로 고침 또는 갱신 $ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
//以下两种方式一样
$ access_token = $ oauth -> getAccessToken ( ' token ' , $ refresh_token );
或
$ access_token = $ oauth -> refreshAccessToken ( $ refresh_token );
이때 $oauth->getRefreshToken()
통해 새로운 refresh_token
얻을 수 있습니다.
이 SDK에는 예외가 발생하는 부분이 없습니다. $oauth->getAccessToken()
또는 $oauth->api()
등의 메소드 호출 시 false
반환되면 $oauth->error()
통해 오류 정보를 얻은 것입니다. $oauth->error()
이므로 오류를 처리하기 위해 try {} catch {}
사용할 필요가 없습니다.
MIT 라이센스(MIT) Copyright (c) 2014 Henter <[email protected]>
본 소프트웨어 및 관련 문서 파일('소프트웨어')의 사본을 취득한 모든 사람에게 사용, 복사, 수정, 병합에 대한 권리를 포함하되 이에 국한되지 않고 제한 없이 소프트웨어를 취급할 수 있는 권한이 무료로 부여됩니다. , 소프트웨어 사본을 게시, 배포, 재라이센스 부여 및/또는 판매하고, 소프트웨어를 제공받은 사람에게 다음 조건에 따라 그렇게 하도록 허용합니다.
위의 저작권 고지와 본 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 포함됩니다.
소프트웨어는 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 어떠한 종류의 보증 없이 '있는 그대로' 제공됩니다. 청구, 손해 또는 기타 소프트웨어나 소프트웨어의 사용 또는 기타 거래로 인해 발생하거나 이와 관련하여 발생하는 계약, 불법 행위 또는 기타 행위에 대한 책임.