Heim  >  Artikel  >  PHP-Framework  >  ThinkPHP6-Anmeldeintegration von Drittanbietern: Realisieren Sie die Ein-Klick-Anmeldefunktion

ThinkPHP6-Anmeldeintegration von Drittanbietern: Realisieren Sie die Ein-Klick-Anmeldefunktion

PHPz
PHPzOriginal
2023-08-12 18:19:451895Durchsuche

ThinkPHP6-Anmeldeintegration von Drittanbietern: Realisieren Sie die Ein-Klick-Anmeldefunktion

ThinkPHP6-Anmeldeintegration von Drittanbietern: Ein-Klick-Anmeldefunktion realisieren

In modernen Internetanwendungen können sich Benutzer über Plattformen von Drittanbietern bei Anwendungen anmelden, was den Registrierungs- und Anmeldevorgang des Benutzers erheblich erleichtert. ThinkPHP ist ein bekanntes PHP-Framework und die Integration der Anmeldung von Drittanbietern ist relativ einfach. In diesem Artikel wird erläutert, wie Sie mit dem ThinkPHP6-Framework die Ein-Klick-Anmeldefunktion implementieren.

  1. Eine Drittanbieteranwendung erstellen

Zunächst müssen wir eine Anwendung auf der Zielplattform eines Drittanbieters registrieren, um die erforderlichen Informationen wie AppID und AppSecret der Anwendung zu erhalten. In diesem Artikel wird die WeChat-Anmeldung als Beispiel verwendet:

  • Melden Sie sich bei der offenen WeChat-Plattform (https://open.weixin.qq.com/) an und registrieren Sie ein Entwicklerkonto.
  • Erstellen Sie eine Anwendung auf der offenen Plattform und erhalten Sie die AppID und das AppSecret.
  1. Installieren Sie ThinkPHP6 und zugehörige Abhängigkeitspakete.

Verwenden Sie Composer, um das ThinkPHP6-Framework und zugehörige Abhängigkeitspakete zu installieren. Führen Sie den folgenden Befehl aus:

composer create-project topthink/think tp6
  1. Anmeldeinformationen von Drittanbietern konfigurieren

.env in der Projektcode-Datei: <code>.env文件中添加以下配置信息:

# 微信登录配置
WECHAT_APPID=YOUR_WECHAT_APPID
WECHAT_SECRET=YOUR_WECHAT_SECRET
WECHAT_REDIRECT_URI=YOUR_REDIRECT_URI

YOUR_WECHAT_APPIDYOUR_WECHAT_SECRETYOUR_REDIRECT_URI替换为你在微信开放平台上获得的应用信息。

  1. 创建控制器和路由

在ThinkPHP6中,我们可以通过命令快速创建控制器和路由。执行以下命令:

php think make:controller ThirdLogin

在生成的控制器文件中,我们添加微信登录和回调方法的逻辑。示例代码如下:

<?php
namespace appcontroller;

use thinkController;
use thinkacadeConfig;

class ThirdLogin extends Controller
{
    // 微信登录
    public function wechatLogin()
    {
        // 构造授权请求URL
        $redirectUri = urlencode(Config::get('app.url') . '/thirdLogin/wechatCallback');
        $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . 
               Config::get('wechat.appid') . 
               "&redirect_uri=" . 
               $redirectUri .
               "&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
        
        // 跳转到微信授权页面
        return redirect($url);
    }

    // 微信登录回调
    public function wechatCallback()
    {
        // 获取回调时微信返回的code
        $code = input('get.code');
        
        // 根据code获取access_token
        // ...
        
        // 根据access_token获取用户信息
        // ...
        
        // 登录逻辑
        // ...
    }
}

然后,我们需要在route目录下的route.php

<?php
use thinkacadeRoute;

// 第三方登录
Route::get('login/wechat', 'ThirdLogin/wechatLogin');
Route::get('thirdLogin/wechatCallback', 'ThirdLogin/wechatCallback');

Ersetzen Sie YOUR_WECHAT_APPID, YOUR_WECHAT_SECRET und YOUR_REDIRECT_URI durch die Anwendungen, die Sie auf den Informationen der offenen WeChat-Plattform erhalten haben.
    1. Controller und Routen erstellen

    In ThinkPHP6 können wir schnell Controller und Routen durch Befehle erstellen. Führen Sie den folgenden Befehl aus:

    <button onclick="redirect()">微信登录</button>
    
    <script>
        function redirect() {
            window.location.href = '/login/wechat';
        }
    </script>

    In der generierten Controller-Datei fügen wir die Logik der WeChat-Anmelde- und Rückrufmethoden hinzu. Der Beispielcode lautet wie folgt:

    rrreee

    Dann müssen wir die Routing-Konfiguration in der Datei route.php im Verzeichnis route hinzufügen. Der Beispielcode lautet wie folgt:

    rrreee🎜🎜Implementieren Sie die Frontend-Seite 🎜🎜🎜Auf der Frontend-Seite fügen wir eine Funktion hinzu, die nach dem Klicken auf eine Schaltfläche zur WeChat-Anmeldeseite springt. Der Beispielcode lautet wie folgt: 🎜rrreee🎜Zu diesem Zeitpunkt haben wir die Ein-Klick-Anmeldefunktion abgeschlossen, die die WeChat-Anmeldung in das ThinkPHP6-Framework integriert. 🎜🎜Es ist zu beachten, dass dieser Artikel nur ein einfaches Beispiel ist. In der tatsächlichen Entwicklung müssen Fehlerrückrufe, Logik zum Abrufen von Zugriffstoken und Benutzerinformationen usw. verarbeitet werden. 🎜

Das obige ist der detaillierte Inhalt vonThinkPHP6-Anmeldeintegration von Drittanbietern: Realisieren Sie die Ein-Klick-Anmeldefunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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