Heim > Backend-Entwicklung > PHP-Problem > So verwenden Sie PHP, um die Anmeldefunktion zum Scannen von WeChat-Code zu implementieren

So verwenden Sie PHP, um die Anmeldefunktion zum Scannen von WeChat-Code zu implementieren

PHPz
Freigeben: 2023-03-21 16:12:01
Original
3158 Leute haben es durchsucht

Mit der rasanten Entwicklung des mobilen Internets ist WeChat als wichtiges soziales Tool nach und nach zu einem unverzichtbaren Bestandteil des täglichen Lebens der Menschen geworden. Bei vielen Websites und Anwendungen ist die WeChat-Anmeldefunktion zu einem Trend geworden, da sie es Benutzern ermöglicht, sich direkt mit ihrem vorhandenen WeChat-Konto anzumelden, ohne ein neues Konto erstellen zu müssen, und außerdem eine bequemere und sicherere Anmeldemethode bietet. In diesem Artikel wird erläutert, wie Sie mit PHP die Anmeldefunktion zum Scannen von WeChat-Code implementieren.

1. Vorbereitung

Bevor wir mit der Implementierung der WeChat-Code-Scanning-Anmeldefunktion beginnen, müssen wir die folgenden Punkte sicherstellen:

1. Bereiten Sie ein registriertes offizielles WeChat-Konto und ein Entwicklerkonto vor. Sie müssen sich auf der öffentlichen WeChat-Plattform registrieren und authentifizieren und ein eigenes Entwicklerkonto erhalten.

2. Laden Sie das PHP SDK herunter und installieren Sie es über Composer. Dafür sind die folgenden Pakete erforderlich:

  • overtrue/socialite

  • 3 öffentliche Plattform und AppSecret, die für API-Aufrufe verwendet werden. Gleichzeitig muss der OAuth2.0-Webseitenautorisierungsdomänenname des offiziellen Kontos konfiguriert werden.

2. Implementierungsschritte

1. Erstellen Sie einen Autorisierungslink Der wichtigste Schritt bei der Implementierung der WeChat-Scancode-Anmeldung besteht darin, dass ein Autorisierungslink generiert werden muss, wenn der Benutzer auf die Anmeldeschaltfläche klickt. Über diesen Link können Benutzer es in WeChat öffnen und der Autorisierung unserer Anwendung zum Zugriff auf ihre WeChat-Kontoinformationen zustimmen.

Wir können das OAuth2.0-Protokoll verwenden, um die Benutzerautorisierung zu implementieren. Der Code zum Generieren des Autorisierungslinks lautet wie folgt:

$socialite = $app->make('overtrue\socialite\Factory');
$oauth = $socialite->driver('wechat')->setRedirectUrl($redirectUrl);
return $oauth->redirect();
Nach dem Login kopieren

Unter diesen ist $redirectUrl die URL, die nach der Autorisierung umgeleitet wird, und $app ist das ServiceContainer-Objekt von Symfony.

Die generierte URL ähnelt der folgenden:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=<APPID>&redirect_uri=<REDIRECT_URI>&response_type=code&scope=snsapi_login&state=<STATE>#wechat_redirect
Nach dem Login kopieren

Wobei die URL ist, die nach der Autorisierung umgeleitet werden soll, Zeichen Zufällige Zeichenfolge, die verwendet wird, um CSRF-Angriffe zu verhindern.

2. Besorgen Sie sich das Autorisierungstoken

Wenn der Benutzer auf den Autorisierungslink klickt, gelangt er zur WeChat-Code-Scan-Seite. Der Benutzer verwendet das WeChat-Code-Scan-Tool, um den Code zu scannen, um sich anzumelden, und dann leitet WeChat weiter Seite legen wir im ersten Schritt die Umleitungs-URL fest und hängen einen Autorisierungscode an.

Wir müssen diesen Code im Austausch für AccessToken und RefreshToken verwenden. Der Code lautet wie folgt:

$socialite = $app->make('overtrue\socialite\Factory');
$oauth = $socialite->driver('wechat');
$user = $oauth->user();

$accessToken = $user->getToken()->access_token; //获取Access Token
$refreshToken = $user->getToken()->refresh_token; //获取Refresh Token
$openid = $user->getId(); //获取用户 OpenID
Nach dem Login kopieren

Nachdem wir das SDK zum Abrufen von AccessToken und RefreshToken verwendet haben, können wir AccessToken verwenden, um bei zukünftigen Besuchen grundlegende Benutzerinformationen anzufordern, und wir müssen RefreshToken verwenden, um AccessToken zu aktualisieren.

3. Fordern Sie die Basisinformationen des Benutzers an

Verwenden Sie das erhaltene AccessToken und die OpenID und übergeben Sie sie als Parameter, wenn Sie auf die Basisinformationen des Benutzers zugreifen. Der Code lautet wie folgt:

$client = $app['wechat'];
$user = $client->user->get($openid);
Nach dem Login kopieren

Unter diesen ist $app das ServiceContainer-Objekt von Symfony , und $client wird als vom SDK erstelltes Instanzobjekt übergeben.

Als nächstes können Sie das $user-Objekt verwenden, um auf die grundlegenden Informationen des Benutzers zuzugreifen, einschließlich Spitzname, Geschlecht, Region, Avatar-URL usw.

3. Zusammenfassung

In diesem Artikel wird die Verwendung von PHP zur Implementierung der WeChat-Code-Scan-Anmeldefunktion vorgestellt. Er ist hauptsächlich in drei Schritte unterteilt: Autorisierungslinks generieren, Autorisierungstoken erhalten und grundlegende Benutzerinformationen anfordern. Während des Implementierungsprozesses müssen Sie auf viele Details achten, z. B. wie Sie AppID und AppSecret erhalten, wie Sie den OAuth2.0-Webseitenautorisierungsdomänennamen des offiziellen WeChat-Kontos konfigurieren, wie Sie das SDK verwenden usw. Durch die Einführung dieses Artikels glaube ich, dass jeder die grundlegende Implementierungsmethode der WeChat-Scancode-Anmeldung beherrschen konnte. Sie können diese Funktion zu Ihrer eigenen Website oder Anwendung hinzufügen, um eine bequemere und sicherere Anmeldemethode bereitzustellen und eine bessere zu erzielen Benutzererfahrung für Benutzer.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP, um die Anmeldefunktion zum Scannen von WeChat-Code zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage