Wechat Public Platform hat kürzlich die WeChat -Authentifizierung eingeführt und Sie können nach der Authentifizierung erweiterte Schnittstellenberechtigungen erhalten. Viele Freunde scheitern oder können ihren Inhalt nicht verstehen, wenn sie sie verwenden. Heute bietet Ihnen der Herausgeber des neuen Technologiekanals die WeChat Development -Webseiten -Autorisierung, um grundlegende Benutzerinformationen zu erhalten.
1. Was ist oAuth2.0
Offizielle Website: http://oauth.net/ http://oauth.net/2/
Autoritative Definition: OAuth ist ein offenes Protokoll, mit dem sich eine sichere Autorisierung in einer einfachen und Standardmethode aus Web-, Mobil- und Desktop -Anwendungen in einer einfachen und Standardmethode ermöglicht.
OAuth ist eine offene Vereinbarung, mit der Benutzer private Ressourcen (z. B. personenbezogene Informationen, Fotos, Videos, Kontaktlisten) erhalten können, die von Anwendungen von Drittanbietern auf sichere und standardmäßige Weise (z. B. personenbezogene Daten, Fotos, Videos, Kontaktlisten) auf einer Website, einer mobilen oder Desktop-Anwendung, ohne Benutzername und Kennwort, auf Drittanbieter gespeichert sind.
OAuth 2.0 ist die nächste Version des OAuth -Protokolls, aber nicht rückwärtskompatibel mit OAuth 1.0. OAuth 2.0 konzentriert sich auf die Einfachheit von Kundenentwicklern und bietet gleichzeitig einen dedizierten Zertifizierungsprozess für Webanwendungen, Desktop -Anwendungen und Mobiltelefone und Wohnzimmergeräte.
Mit OAuth können Benutzer ein Token anstelle eines Benutzernamens und eines Kennworts bereitstellen, um auf die Daten zuzugreifen, die sie in einem bestimmten Dienstanbieter speichern. Jedes Token genehmigt eine bestimmte Website (z. B. eine Videobearbeitungs -Website), um innerhalb eines bestimmten Zeitraums (z. B. innerhalb der nächsten 2 Stunden) auf eine bestimmte Ressource (z. B. nur ein Video in einem bestimmten Album) zuzugreifen. Auf diese Weise ermöglicht OAuth Benutzern, Websites von Drittanbietern zu autorisieren, um auf Informationen zuzugreifen, die sie auf einem anderen Dienstanbieter speichern, ohne alle Zugriffsberechtigungen oder Daten zu teilen.
SINA Weibo API verwendet derzeit auch OAuth 2.0.
2. Genehmigung der Wechat Public Platform OAuth2.0
Die detaillierten Schritte zur Genehmigung der WeChat Public Platform OAuth2.0 sind wie folgt:
1. Benutzer folgen den öffentlichen Konten WeChat.
2. Das WeChat Public Account enthält die URL der Seite "Benutzeranforderung".
3. Der Benutzer klickt auf die URL der Autorisierungsseite und leitet eine Anfrage an den Server ein.
V.
5. Benutzer stimmt zu (es gibt keinen solchen Schritt, wenn der Umfang snsapi_base ist)
6. Der Server übergibt Code über Callback an das öffentliche Konto des WeChat
7. Code auf WeChat Public Account erhalten
8. WeChat Public Account fordert über Code Zugriffs -Token auf den Server an
9. Der Server gibt Zugriffstoken und OpenID auf das öffentliche WeChat zurück
10. WeChat öffentliches Konto fordert Benutzerinformationen über Access Token an den Server an (es gibt keinen solchen Schritt, wenn der Umfang snsapi_base ist)
11. Der Server sendet Benutzerinformationen an das öffentliche WeChat -Konto zurück (es gibt keinen solchen Schritt, wenn der Umfang snsapi_base ist).
Der verwendete Appid und der AppSecret finden Sie in der Entwickler-Center-Entwickler-ID.
1. Konfigurieren Sie den Domänennamen der Autorisierungs -Rückrufseite
Nach dem Eintritt in den Hintergrund der öffentlichen Plattform in WeChat geben Sie die Entwickler-Center-Permission-Tabelle ein und finden Sie die Webseitenberechtigung, um grundlegende Benutzerinformationen zu erhalten.
Klicken Sie rechts auf Bearbeiten.
Die Domänennamenkonfigurationsspezifikation für den Berechtigungsrückruf ist ein vollständiger Domänenname und enthält keine HTTP. Beispielsweise ist der Domänenname, der die Web -Autorisierung erfordert, www.qq.com. Nach der Konfiguration können die Seiten unter diesem Domänennamen http://www.qq.com/music.html und http://www.qq.com/login.html die OATH2.0 -Authentifizierung durchführen. Http://pay.qq.com, http://music.qq.com und http://qq.com können jedoch die Authentifizierung von OAuth2.0 nicht ausführen.
Hier füllen wir einen Sekundärdomain -Namen von Baidu -Anwendung aus Fangbi Studio als maskot.duapp.com aus
Wenn Ihre URL nicht auf die schwarze Liste steht, wird sie oben angezeigt
Anschließend ist die Konfiguration der Domänennamen erfolgreich.
2. Benutzerberechtigung und Code erhalten
Erstellen Sie im Root -Verzeichnis des Domänennamens eine neue Datei, nennen Sie es oAuth2.Php und der Inhalt ist
<? phpif (isset ($ _ get ['code'])) {echo $ _get ['code'];} else {echo "no code";}?>Lassen Sie uns zunächst verstehen, wie Sie die Autorisierungsseite erstellen:
https://open.weixin.qqq.com/connect/oauth2/authorize?appid=appid&redirect_uri=redirect_uri&response_type=code&scope=scope&state=state#wechat_redirect
Parameterbeschreibung
| Parameter | muss | veranschaulichen |
|---|---|---|
| Appid | Ja | Die eindeutige Kennung des offiziellen Berichts |
| recirect_uri | Ja | Umruftback -Link -Adresse nach der Genehmigung umgeleitet |
| response_type | Ja | Rückgabetyp, bitte füllen Sie den Code aus |
| Umfang | Ja | Anwenden Sie Autorisierungsumfang, SNSAPI_Base (keine Autorisierungsseite tauchen auf, nur Sprünge, nur Benutzer OpenID können erhalten werden), SNSAPI_USERINFO (Popup -Autorisierungsseite, Sie können den Spickname, das Geschlecht und den Ort über OpenID erhalten. Und auch wenn Sie nicht folgen, so lange der Benutzer autorisiert, können Ihre Informationen erhalten werden. |
| Zustand | NEIN | Nach der Umleitung werden Zustandsparameter einbezogen, und Entwickler können alle Parameterwerte ausfüllen. |
| #wechat_redirect | NEIN | Öffnen Sie den Link direkt auf WeChat und füllen Sie diesen Parameter nicht aus. Dieser Parameter muss bei der Umleitung von Seite 302 enthalten sein |
Anwendungsautorisierungsumfang: Da SNSAPI_Base nur OpenID erhalten kann, macht es keinen Sinn, also verwenden wir SNSAPI_USERINFO.
Rückrufadresse: Füllen Sie die Dateiadresse von OAuth2.Php aus, das gerade hochgeladen wurde.
Statusparameter: Eine beliebige Zahl, füllen Sie hier 1 aus
Die Konstruktanforderungs -URL lautet wie folgt:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8888888888888&redirect_uri=http: //mascot.duapp.com/oauth2.php&response_type=code&scope=snsapi_Userinfo&state=1#wechat_redirect
Senden Sie diesen Link an WeChat, um im WeChat -Browser zu öffnen. Verwenden Sie hier den A -Link, um ihn wie folgt zu verkörpern:
Willkommen bei Follow [Jinbao], was es für Sie bequemer machen kann, Catering, Kleidung, Kaufhäuser und Schönheitssalon -Läden zu finden, die Ihren Wünschen in Ihrer Nähe entsprechen.
<a href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=WX8888888888888&redirect_uri=http: //mascot.duapp.com/oauth2.php&response_type=code&scope=snsapi_Userinfo&state=1#wechat_redirect">click hier zu binden </a>
Technischer Support Fangbi Studio
Zeigen wie folgt in WeChat
Nach dem Klicken auf die Bindung wird die Antragsberechtigungsschnittstelle angezeigt
Wählen Sie zulassen, klicken Sie auf
Springen Sie zur Seite der Auth2.Php und führen Sie aus
echo $ _get ['Code']
Der Code wird auf der Schnittstelle angezeigt. Zu diesem Zeitpunkt wird die Verbindung erhalten, indem die Verbindung in der Taste in der oberen rechten Ecke kopiert wird:
http://mascot.duapp.com/oauth2.php?code=00b788e3b42043c8459a57a8d8ab5d9f&state=1
Wir haben den Code erfolgreich bekommen.
Hinweis: Wenn eine solche Schnittstelle während der Bindung angezeigt wird, bedeutet dies, dass die Parameter falsch sind und Sie zurückgehen und die Parameter überprüfen müssen.
3.. Verwenden Sie den Code, um access_token auszutauschen
So erstellen Sie die Seite Access_Token für den Austausch für die Webberechtigung:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid&secret=secret&code=Code&grant_type=Authorization_code
Parameterbeschreibung
| Parameter | Ist es notwendig? | veranschaulichen |
|---|---|---|
| Appid | Ja | Die eindeutige Kennung des offiziellen Berichts |
| Geheimnis | Ja | Der offizielle Account Appsecret |
| Code | Ja | Füllen Sie die im ersten Schritt erhaltenen Codeparameter ein |
| Grant_type | Ja | Füllen Sie als Authorization_Code aus |
Code: Füllen Sie hier als den im vorherigen Schritt erhaltenen Wert aus
Die Konstruktanforderungs -URL lautet wie folgt:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx88888888888888&secret=aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa & Code = 00b788e3b42043c8459a57a8d8ab5d9f & Grant_type = authorization_code
Sie können diese Anweisung direkt im Browser ausführen:
(
Hier ist der Schlüssel, der darin besteht, den JSON -Datencode über die obige URL zu erhalten
$ ch = curl_init (); curl_setopt ($ ch, curlopt_url, $ url); curl_setopt ($ ch, curlopt_returntransfer, 1); // verlangt, dass das Ergebnis eine Zeichenfolge und Ausgabe für den Bildschirm curl_setopt ($ ch, curlopt_header, 0); // HTTP -Header nicht beschleunigen Effizienz CURL_SETOPT ($ CH, Curlopt_Useragent, 'Mozilla/5.0 (kompatibel; MSIE 5.01; Windows NT 5.0)'); curl_setopt ($ ch, curlopt_timeout, 15); curl_setopt ($ ch, curlopt_sl_verifypeer, false); // HTTPS -Anforderung überprüft keine Zertifikate und hostet curl_setopt ($ ch, curlopt_ssl_verifyHost, false); $ output = curl_exec ($ ch); curl_close ($ ch); $ jSondecode = json_decode ($ output); // Zeichenfolgen im JSON -Format $ array = get_object_vars ($ jSondeCode); // In Array konvertieren // Die beiden roten Linien sind der entscheidende Punkt. Für HTTPS habe ich mehr als ein Tag lang $ array kämpft.
)
Holen Sie sich die folgenden JSON -Daten:
{"access_token": "OezxceiibsksXw0eoylieasr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqqvj-g0Zwee5-subj BZ941EOPQDQY5SS_GCS2Z40DNVU99Y5AI1BW2UQN-2JXOBLIM5D6L9RIMVM8VG8CBAILPWA8VW ", "Expires_in": 7200, "request_token": "OezxceiibsksXw0eoylieasr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqqvj-g0Zwee5-subj BZ941EOPQDQY5SS_GCS2Z40DNVU99Y5CZPAWZKSIUZ_6X_TFKLOXLU7KDKM2232WDXB3MSUZQ1A ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", "OpenID": "olvppjqs9bhvzwpj5a-vtyax3glc", "Scope": "SNSAPI_USERINFO,"}Das Datenformat wird wie folgt interpretiert:
| Parameter | beschreiben |
|---|---|
| access_token | Anrufberechtigungsnachweise der Webberechtigung, Hinweis: Dieser Access_Token unterscheidet sich von der von der Basic unterstützten Access_Token |
| abläuft_in | Access_Token Interface Call Anmeldeinformationen Timeout, Einheit (Sekunden) |
| refresh_token | Benutzer aktualisieren access_token |
| OpenID | Benutzer eindeutiger Bezeichner. Bitte beachten Sie, dass Benutzer, wenn sie nicht dem offiziellen Konto folgen und Benutzer auf der Webseite des offiziellen Kontos nicht befolgen, auch eine eindeutige OpenID für Benutzer und offizielle Konten generieren. |
| Umfang | Der Umfang der Benutzergenehmigung, getrennt durch Komma (,) |
Also haben wir erfolgreich Access_Token und Refresh_Token über Code ausgetauscht.
Aktualisieren Sie Access_Token
Das offizielle Dokument erwähnt die Funktion der Aktualisierung von Access_Token, dies ist jedoch kein Muss. Sie können es zum ersten Mal ignorieren.
Die URL -Anforderungsmethode lautet wie folgt:
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=appid&grant_type=refresh_token&refresh_token=refresh_token
Parameterbeschreibung
| Parameter | Ist es notwendig? | veranschaulichen |
|---|---|---|
| Appid | Ja | Die eindeutige Kennung des offiziellen Berichts |
| Grant_type | Ja | Füllen Sie als Refresh_Token aus |
| refresh_token | Ja | Füllen Sie den Parameter Refresh_Token ein, der über Access_Token erhalten wurde |
Die Struktur ist wie folgt:
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=wx88888888888&grant_type=refresh_token&refresh_token=oezxciibsksxw0eoy LIEASR0GMYD1AWCFFDHGB4FHS_KKF2COTGJ2CBNUKQQVJ-G0ZWEE5-UBJBZ941EOPQ DQY5SSS_GCS2Z40DNVU99Y5CZPAWZKSIUZ_6X_TFKLOXLU7KDKM2232WDXB3MSUZQ1A
Führen Sie JSON -Daten im Browser im selben Format aus
4. Verwenden Sie Access_Token, um Benutzerinformationen zu erhalten
Anforderungsmethode:
https://api.weixin.qq.com/sns/userinfo?access_token=access_token&openid=openid
Parameterbeschreibung
| Parameter | beschreiben |
|---|---|
| access_token | Anrufberechtigungsnachweise der Webberechtigung, Hinweis: Dieser Access_Token unterscheidet sich von der von der Basic unterstützten Access_Token |
| OpenID | Eindeutige ID des Benutzers |
Die URL ist wie folgt konstruiert:
https://api.weixin.qqq.com/sns/userinfo?access_token=oezxceiibsksxw0eoylieasr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqqvj-G0z Wee5-UBJBZ941EOPQDQY5SS_GCS2Z40DNVU99Y5AI1BW2UQN--2JXOBLIM5D6L9RIMVM8VG8CBAILPWA8VW & OpenID = OlVPPJQS9BHVZWPJ5A-VTYAX3GLC
Sie können diese Anweisung direkt im Browser ausführen:
Holen Sie sich die folgenden JSON -Daten:
{ "openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc", "nickname": "fangbi", "sex": 1, "language": "zh_CN", "city": "Shenzhen", "province": "Guangdong", "country": "CN", "headimgurl": "http://wx.qlogo.cn/mmopen/Utpkyf69vabcrdrlbuSpsdqn38doibcKru6samcsnx58etalvm8pym6jlegzorh67hyzizpxu4bk1xnwzsxb3cs4QPBBG18/0", "," bivilexnwzsxb3cs4cs4cs4cs4cs4cs4cs4cs4cs4cs4cs4cs4cs4cs4cs4cs4cs4cs4cs4qpbbg18/0 ",", ","Parameterinterpretation:
| Parameter | beschreiben |
|---|---|
| OpenID | Eindeutige ID des Benutzers |
| Spitzname | Benutzerspitzname |
| Sex | Das Geschlecht des Benutzers, wenn der Wert 1 ist, ist er männlich, wenn der Wert 2 ist, ist er weiblich und wenn der Wert 0 ist, ist er unbekannt |
| Provinz | Provinzen ausgefülltes Benutzerprofil |
| Stadt | Die Stadt füllte sich mit den persönlichen Informationen gewöhnlicher Benutzer aus |
| Land | Land wie China ist CN |
| Headimgurl | User Avatar, der letzte Wert repräsentiert die Größe des quadratischen Avatars (es gibt 0, 46, 64, 96 und 132 Werte, und 0 repräsentiert 640*640 Quadrat -Avatar). Dieser Artikel ist leer, wenn der Benutzer keinen Avatar hat. |
| Privileg | Benutzerrechtsinformationen, JSON -Array, wie WeChat Woka -Benutzer (ChinaUnicom) |
Dies steht im Einklang mit meinen persönlichen Wechat -Informationen
Zu diesem Zeitpunkt erhielt das WeChat Public Account Jinbao, ohne mein Konto und mein Passwort einzugeben, meine persönlichen Daten, einschließlich meines Spitznamens, meiner Geschlecht, des Landes, der Provinz, der Stadt, meiner persönlichen Avatar- und Privilegienliste.
Eine vollständige OAuth2 -Zertifizierung ist abgeschlossen.
3. detaillierte Demonstration
Folgen Sie Fangbei Studio (siehe den QR -Code unten), antworten Sie "Autorisierung", kehren Sie zur Grafik und zur Textnachricht zurück, klicken Sie auf das Bild
Klicken Sie auf der Bestätigungsseite auf "Erlauben" klicken
Das erhaltene Ergebnis wird aufgebaut (das Bild unterliegt der Verarbeitung von Diebstahl, sodass es nicht direkt angezeigt werden kann. Sie können es lokal herunterladen und anzeigen).
In den oben genannten Informationen geht es um die Informationen über die Webentwicklung der WeChat -Autorisierung, um Benutzer grundlegende Informationen zu erhalten, die Webberechtigung zum Erhalt von Benutzerinformationen und die relevanten Informationen werden in Zukunft hinzugefügt. Vielen Dank für Ihre Unterstützung vom neuen Technologiekanal!