WeChat Public Platform은 최근 WeChat 인증을 시작했으며 인증 후 고급 인터페이스 권한을 얻을 수 있습니다. 많은 친구들이 사용할 때 자신의 내용을 이해할 수 없거나 이해할 수 없습니다. 오늘날 새로운 기술 채널의 편집자는 기본 사용자 정보를 얻기위한 WeChat 개발 웹 페이지 승인을 제공합니다.
1. OAUTH2.0이란 무엇입니까?
공식 웹 사이트 : http://oauth.net/ http://oauth.net/2/
권위있는 정의 : OAUTH는 웹, 모바일 및 데스크탑 응용 프로그램의 간단하고 표준적인 방법으로 보안 승인을 허용하는 공개 프로토콜입니다.
OAUTH는 사용자가 개인 정보, 사진, 비디오, 연락처 목록과 같은 개인 리소스 (예 : 제 3 자 애플리케이션에서 저장된 개인 정보, 사진, 비디오, 연락처 목록) (예 : 사용자 개인 정보, 사진, 비디오, 연락처 목록), 웹 사이트, 모바일 또는 데스크톱 응용 프로그램과 같은 3 분기 응용 프로그램에 사용자 이름 및 비밀번호를 제공 할 수있는 공개 계약입니다.
OAUTH 2.0은 다음 버전의 OAUTH 프로토콜이지만 OAUTH 1.0과 호환되지 않습니다. OAUTH 2.0은 고객 개발자의 단순성에 중점을두고 웹 애플리케이션, 데스크탑 응용 프로그램 및 휴대 전화 및 거실 장치에 전용 인증 프로세스를 제공합니다.
OAUTH를 통해 사용자는 사용자 이름과 비밀번호 대신 토큰을 제공하여 특정 서비스 제공 업체에 저장 한 데이터에 액세스 할 수 있습니다. 각 토큰은 특정 웹 사이트 (예 : 비디오 편집 웹 사이트)가 특정 기간 (예 : 다음 2 시간 이내에) 내에 특정 리소스 (예 : 특정 앨범의 비디오)에 액세스 할 수 있도록 권한을 부여합니다. 이러한 방식으로 OAUTH를 통해 사용자는 타사 웹 사이트를 승인하여 모든 액세스 권한이나 데이터를 공유하지 않고 다른 서비스 제공 업체에 저장된 정보에 액세스 할 수 있습니다.
Sina Weibo API는 현재 OAUTH 2.0을 사용합니다.
2. WeChat 공개 플랫폼 OAUTH2.0의 승인
WeChat 공개 플랫폼 OAUTH2.0의 승인을위한 자세한 단계는 다음과 같습니다.
1. 사용자는 WeChat 공개 계정을 따릅니다.
2. WeChat 공개 계정은 사용자 요청 승인 페이지의 URL을 제공합니다.
3. 사용자는 권한 부여 페이지 URL을 클릭하고 서버에 요청을 시작합니다.
4. 서버는 사용자에게 WeChat 공개 계정을 승인하는 데 동의하는지 여부를 묻습니다 (SCOPE SNSAPI_BASE 일 때 그러한 단계는 없습니다).
5. 사용자는 동의합니다 (스코프가 snsapi_base 일 때 그러한 단계는 없습니다)
6. 서버는 콜백을 통해 코드를 WeChat 공개 계정으로 전달합니다.
7. WeChat 공개 계정에서 코드를 받으십시오
8. WeChat 공개 계정은 코드를 통해 서버에 대한 액세스 토큰을 요청합니다.
9. 서버는 Access Token 및 OpenID를 WeChat 공개 계정으로 반환합니다.
10. WeChat 공개 계정은 액세스 토큰을 통해 서버에 사용자 정보를 요청합니다 (SCOPE SNSAPI_BASE 인 경우 그러한 단계는 없습니다)
11. 서버는 사용자 정보를 WeChat 공개 계정으로 돌려 보냅니다 (SCOPE SNSAPI_BASE 인 경우 그러한 단계는 없습니다).
사용 된 APPID 및 APPSECRET는 개발자 센터 개발자 ID에서 찾을 수 있습니다.
1. 인증 콜백 페이지의 도메인 이름 구성
WeChat Public Platform Background에 들어가면 Developer Center-Permission 테이블을 차례로 입력 한 후 웹 페이지 인증을 찾아 기본 사용자 정보를 얻으십시오.
오른쪽에서 편집을 클릭하십시오.
인증 콜백의 도메인 이름 구성 사양은 전체 도메인 이름이며 HTTP는 포함되지 않습니다. 예를 들어, 웹 승인이 필요한 도메인 이름은 www.qq.com입니다. 구성 후이 도메인 이름 아래의 페이지 http://www.qq.com/music.html 및 http://www.qq.com/login.html은 모두 OAuth2.0 인증을 수행 할 수 있습니다. 그러나 http://pay.qq.com, http://music.qq.com 및 http://qq.com은 Oauth2.0 인증을 수행 할 수 없습니다.
여기서 우리는 Fangbi Studio의 Baidu 응용 프로그램 보조 도메인 이름을 Mascot.duapp.com으로 작성합니다.
URL이 블랙리스트가 아닌 경우 상단에 나타납니다.
그런 다음 도메인 이름 구성이 성공합니다.
2. 사용자 승인 및 코드를 얻습니다
도메인 이름의 루트 디렉토리에서 새 파일을 만들고 이름을 aauth2.php로 만들면 해당 내용이
<? phpif (isset ($ _ get [ 'code'])) {echo $ _get [ 'code'];} else {echo "no code";}?>먼저 승인 페이지를 구성하는 방법을 이해해 봅시다.
https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid&redirect_uri=redirect_uri&response_type=code&scope=scope&state=state#wechat_redirect
매개 변수 설명
| 매개 변수 | ~ 해야 하다 | 설명 |
|---|---|---|
| Appid | 예 | 공식 계정의 고유 식별자 |
| REDIRECT_URI | 예 | 승인 후 리디렉션 된 콜백 링크 주소 |
| 응답 _type | 예 | 반환 유형, 코드를 작성하십시오 |
| 범위 | 예 | 승인 범위, SNSAPI_BASE (권한 부여 페이지가 팝업되지 않고 점프, 사용자 OpenID 만 얻을 수 있음), SNSAPI_USERINFO (팝업 승인 페이지, OpenID를 통해 닉네임, 성별 및 위치를 얻을 수 있습니다. 사용자가 승인하지 않더라도 정보를 얻을 수 있습니다). |
| 상태 | 아니요 | 리디렉션 후 상태 매개 변수가 포함되며 개발자는 매개 변수 값을 채울 수 있습니다. |
| #wechat_redirect | 아니요 | WeChat에서 링크를 직접 열고이 매개 변수를 채우지 마십시오. 이 매개 변수는 302 페이지를 수행 할 때 포함되어야합니다. |
응용 프로그램 인증 범위 : SNSAPI_BASE는 OpenID 만 얻을 수 있으므로 그다지 의미가 없으므로 SNSAPI_USERINFO를 사용합니다.
콜백 주소 : OAUTH2.PHP의 파일 주소로 작성하여 업로드했습니다.
상태 매개 변수 : 모든 숫자, 여기에 1을 채우십시오
구성 요청 URL은 다음과 같습니다.
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx88888888888888&redirect_uri=http : //mascot.duapp.com/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect
WeChat 브라우저에서 열려있는이 링크를 WeChat로 보내십시오. 여기에서 A 링크를 사용하여 다음과 같이 캡슐화하십시오.
[Jinbao]를 따라 오신 것을 환영합니다.이를 통해 케이터링, 의류, 백화점 및 미용실 상점을 찾을 수 있습니다.
<a href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx88888888888888888&redirect_uri=http : //mascot.duapp.com/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect">click 여기에 묶기 </a>
기술 지원 Fangbi Studio
WeChat에서 다음과 같이 표시하십시오
바인딩을 클릭 한 후 응용 프로그램 인증 인터페이스가 나타납니다.
허용을 선택하고 클릭하십시오
Auth2.php 페이지로 이동하여 실행하십시오
echo $ _get [ 'Code']
코드는 인터페이스에 표시됩니다. 현재 링크는 오른쪽 상단의 버튼의 링크를 복사하여 얻습니다.
http://mascot.duapp.com/oauth2.php?code=00B788E3B42043C8459A57A8D8AB5D9F&state=1
우리는 코드를 성공적으로 얻었습니다.
참고 : 바인딩 중에 이러한 인터페이스가 나타나면 매개 변수가 올바르지 않아서 돌아가서 매개 변수를 확인해야 함을 의미합니다.
3. 코드를 사용하여 access_token을 교환하십시오
웹 승인을위한 교환을위한 access_token 페이지를 구성하는 방법 :
https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid&secret=secret&code=code&grant_type=authorization_code
매개 변수 설명
| 매개 변수 | 필요합니까? | 설명 |
|---|---|---|
| Appid | 예 | 공식 계정의 고유 식별자 |
| 비밀 | 예 | 공식 계정 appsecret |
| 암호 | 예 | 첫 번째 단계에서 얻은 코드 매개 변수를 작성하십시오. |
| grant_type | 예 | 인증 _code로 작성하십시오 |
코드 : 이전 단계에서 얻은 값으로 여기에 작성하십시오.
구성 요청 URL은 다음과 같습니다.
https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx88888888888888&secret=aaaaaaaaaaaaaaaaaaaaaa AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA & CODE = 00B788E3B42043C8459A8D8D8AB5D9F & GRANT_TYPE = Authorization_Code
브라우저 에서이 문장을 직접 실행할 수 있습니다.
(
위의 URL을 통해 JSON 데이터 코드를 얻는 키는 다음과 같습니다.
$ ch = curl_init (); curl_setopt ($ ch, curlopt_url, $ url); curl_setopt ($ ch, curlopt_returntransfer, 1); // 결과는 문자열이어야하고 화면 Curl_SetOpt ($ ch, curlopt_header, 0)에 출력해야합니다. // HTTP 헤더 속도 속도를 높이지 마십시오. Curl_SetOpt ($ ch, curlopt_useragent, 'mozilla/5.0 (호환 가능; MSIE 5.01; Windows NT 5.0)'); curl_setopt ($ ch, curlopt_timeout, 15); curl_setopt ($ ch, curlopt_ssl_verifypeer, false); // https request는 인증서를 확인하지 않고 curl_setopt ($ ch, curlopt_ssl_verifyhost, false); $ output = curl_exec ($ ch); curl_close ($ ch); $ jsondecode = json_decode ($ output); // JSON 형식으로 문자열을 인코딩하여 $ array = get_object_vars ($ jsondecode); // 배열로 변환 // 두 개의 빨간 선이 핵심 점입니다.
))
다음 JSON 데이터를 가져옵니다.
{ "access_token": "oezxceiibsksksksw0eoylieasr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqvj-g0zwee5-ubj BZ941EOPQDQY5SS_GCS2Z40DNVU999Y5AI1BW2UQN-2JXOBLIM5D6L9RIMVM8VG8CBAILPWA8VW ", "expires_in": 7200, "refresh_token": "oezxceiibsksksksw0eoylieasr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqvj-g0zwee5-ubj BZ941EOPQDQY5SS_GCS2Z40DNVU99Y5CZPAWZKSIUZ_6X_TFKLOXLU7KDKM2232WDXB3MSUZQ1A ", "OpenID": "olvppjqs9bhvzwpj5a-vtyax3glc", "scope": "snsapi_userinfo,"}데이터 형식은 다음과 같이 해석됩니다.
| 매개 변수 | 설명하다 |
|---|---|
| access_token | Web Authorization Interface Call Credentials, 참고 :이 access_token |
| expires_in | access_token 인터페이스 호출 자격 증명 시간 초과, 단위 (초) |
| refresh_token | 사용자 새로 고침 access_token |
| OpenID | 사용자 고유 식별자. 사용자가 공식 계정을 따르지 않으면 사용자가 공식 계정의 웹 페이지를 방문하면 사용자 및 공식 계정을위한 고유 한 OpenID도 생성됩니다. |
| 범위 | Comma (,)에 의해 분리 된 사용자 인증 범위 |
따라서 Code를 통해 Access_Token 및 Comphring_token을 성공적으로 교환했습니다.
access_token을 새로 고치십시오
공식 문서는 Reshisting Access_token의 기능을 언급하지만 이것은 필수가 아닙니다. 처음으로 그것을 무시할 수 있습니다.
URL 요청 방법은 다음과 같습니다.
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=appid&grant_type=refresh_token&refresh_token=refresh_token
매개 변수 설명
| 매개 변수 | 필요합니까? | 설명 |
|---|---|---|
| Appid | 예 | 공식 계정의 고유 식별자 |
| grant_type | 예 | refresh_token으로 채우십시오 |
| refresh_token | 예 | access_token을 통해 얻은 refresh_token 매개 변수를 채우십시오 |
구조는 다음과 같습니다.
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=wx88888888888888&grant_type=refresh_token&refresh_token=OezXcEiiBSKSxW0eoy lieasr0gmyd1awcffdhgb4fhs_kkkf2cotgj2cbnukqvj-g0zwee5-ubjbzz941eopqdqy5ss_gcs2z40dnvu99y5czpawzksiuz_6x_tfkloxlu7kdkm2232323232322323223232323232323232320
브라우저에서 동일한 형식으로 JSON 데이터를 실행합니다.
4. Access_token을 사용하여 사용자 정보를 얻습니다
요청 방법 :
https://api.weixin.qq.com/sns/userinfo?access_token=access_token&openid=openid
매개 변수 설명
| 매개 변수 | 설명하다 |
|---|---|
| access_token | Web Authorization Interface Call Credentials, 참고 :이 access_token |
| OpenID | 사용자의 고유 한 ID |
URL은 다음과 같이 구성됩니다.
https://api.weixin.qq.com/sns/userinfo?access_token=oezxceiibsksxw0eoylieaSr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqvj-g0z wee5-ubjbz941eopqdqy5ss_gcs2z40dnvu99y5ai1bw2uqn-2jxoblim5d6l9rimvm8vg8cbailpwa8vw & openid = olvppjqs9bhvzwpj5a-vtyax3glc
브라우저 에서이 문장을 직접 실행할 수 있습니다.
다음 JSON 데이터를 가져옵니다.
{ "OpenID": "olvppjqs9bhvzwppj5a-vtyax3glc", "fangbi", "fangbi", "sex": "langu "http://wx.qlogo.cn/mmopen/utpkyf69vabcrdrlbuspsdqn38doibckru6samcsnx558etalvm8pym6jlegzorh67hyzibizpxu4bk1xnwzsxb3cs4qqpbg의 priverge" ""}.매개 변수 해석 :
| 매개 변수 | 설명하다 |
|---|---|
| OpenID | 사용자의 고유 한 ID |
| 별명 | 사용자 별명 |
| 섹스 | 사용자의 성별, 값이 1 일 때, 그것은 남성이고, 값이 2 일 때, 그것은 여성이고, 값이 0 일 때, 그것은 알 수 없습니다. |
| 주 | 사용자 프로필로 채워진 지방 |
| 도시 | 도시는 일반 사용자의 개인 정보로 가득 차 있습니다. |
| 국가 | 중국과 같은 국가는 CN입니다 |
| Headimgurl | 사용자 아바타, 마지막 값은 제곱 아바타의 크기를 나타냅니다 (0, 46, 64, 96 및 132 값은 선택 사항이며 0은 640*640 Square Avatar를 나타냅니다). 이 항목은 사용자에게 아바타가 없을 때 비어 있습니다. |
| 특권 | Wechat Woka 사용자 (Chinaunicom)와 같은 사용자 권한 정보, JSON 배열 |
이것은 내 개인적인 WeChat 정보와 일치합니다
이 시점에서 내 계정 및 비밀번호를 입력하지 않고 WeChat 공개 계정 Jinbao는 별명, 성별, 국가, 지방, 도시, 개인 아바타 및 권한 목록을 포함한 개인 정보를 얻었습니다.
완전한 OAUTH2 인증이 완료되었습니다.
3. 자세한 데모
Fangbei Studio (아래 QR 코드 참조), "권한 부여"응답, 그래픽 및 문자 메시지로 돌아가서 그림을 클릭하십시오.
확인 페이지에서 "허용"을 클릭하십시오.
얻은 결과 팝업 (그림은 도난 방지 처리 대상이므로 직접 표시 할 수 없으므로 로컬로 다운로드하여 표시 할 수 있습니다).
위의 내용은 사용자 기본 정보를 얻기위한 WeChat 인증의 웹 개발에 관한 정보, 사용자 정보를 얻기위한 웹 승인 및 관련 정보가 향후 추가 될 것입니다. 새로운 기술 채널에서 지원해 주셔서 감사합니다!