ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP6 サードパーティ ログイン統合: ワンクリック ログイン機能を実現

ThinkPHP6 サードパーティ ログイン統合: ワンクリック ログイン機能を実現

PHPz
PHPzオリジナル
2023-08-12 18:19:451932ブラウズ

ThinkPHP6 サードパーティ ログイン統合: ワンクリック ログイン機能を実現

ThinkPHP6 サードパーティ ログイン統合: ワンクリック ログイン機能の実現

現代のインターネット アプリケーションでは、ユーザーはサードパーティ プラットフォームを通じてアプリケーションにログインできます。ユーザーの登録とログインのプロセスを容易にします。 ThinkPHP はよく知られた PHP フレームワークであり、サードパーティのログインの統合は比較的簡単です。この記事では、ThinkPHP6 フレームワークを使用してワンクリックログイン機能を実装する方法を紹介します。

  1. サードパーティ アプリケーションの作成

まず、ターゲットのサードパーティ プラットフォームにアプリケーションを登録して、アプリケーションの AppID やアプリケーションの AppID などの必要な情報を取得する必要があります。アプリの秘密。この記事では、WeChat へのログインを例に説明します。手順は次のとおりです:

  • WeChat オープン プラットフォーム (https://open.weixin.qq.com/) にログインし、開発者アカウントを登録します。 。
  • オープン プラットフォームでアプリケーションを作成し、AppID と AppSecret を取得します。
  1. ThinkPHP6 と関連依存関係パッケージのインストール

Composer を使用して ThinkPHP6 フレームワークと関連依存関係パッケージをインストールし、次のコマンドを実行します:

composer create-project topthink/think tp6
  1. サードパーティのログイン情報を構成する

次の構成情報をプロジェクトの .env ファイルに追加します:

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

Change YOUR_WECHAT_APPIDYOUR_WECHAT_SECRETYOUR_REDIRECT_URI を、WeChat オープン プラットフォームで取得したアプリケーション情報に置き換えます。

  1. コントローラーとルートの作成

ThinkPHP6 では、コマンドを通じてコン​​トローラーとルートをすばやく作成できます。次のコマンドを実行します。

php think make:controller ThirdLogin

生成されたコントローラー ファイルに、WeChat ログイン メソッドとコールバック メソッドのロジックを追加します。サンプル コードは次のとおりです:

<?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');
  1. フロントエンド ページの実装

フロントエンド ページに、ボタンをクリックすると WeChat のログイン ページにジャンプする機能を追加します。サンプル コードは次のとおりです。

<button onclick="redirect()">微信登录</button>

<script>
    function redirect() {
        window.location.href = '/login/wechat';
    }
</script>

これまでに、ThinkPHP6 フレームワークに WeChat ログインを統合するワンクリック ログイン機能が完成しました。

なお、この記事は簡単な例であり、実際の開発ではエラーコールバックやaccess_tokenやユーザー情報を取得するロジックなども必要になります。

以上がThinkPHP6 サードパーティ ログイン統合: ワンクリック ログイン機能を実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。