ホームページ >バックエンド開発 >PHPの問題 >PHPを使用してWeChatコードスキャンログイン機能を実装する方法

PHPを使用してWeChatコードスキャンログイン機能を実装する方法

PHPz
PHPzオリジナル
2023-03-21 15:49:513156ブラウズ

モバイル インターネットの急速な発展に伴い、WeChat は重要なソーシャル ツールとして、徐々に人々の日常生活に欠かせないものになってきました。多くの Web サイトやアプリケーションでは、WeChat ログイン機能がトレンドになっています。この機能を使用すると、ユーザーは新しいアカウントを作成することなく、既存の WeChat アカウントを使用して直接ログインでき、より便利で安全なログイン方法も提供されるからです。この記事では、PHPを使用してWeChatのコードスキャンログイン機能を実装する方法を紹介します。

1. 準備作業

WeChat コード スキャン ログイン機能の実装を開始する前に、次の点を確認する必要があります。登録済みの WeChat 公式アカウントと開発者アカウント。 WeChat パブリック プラットフォームに登録して認証し、独自の開発者アカウントを取得する必要があります。

2. PHP SDK をダウンロードしてインストールします。Composer を通じてインストールできますが、これには次のパッケージが必要です:

##wechat/wechat
  • #overtrue/socialite

  • 3. API 呼び出しで使用するために、WeChat パブリック プラットフォームを通じて AppID と AppSecret を取得します。同時に、パブリック アカウントを設定する必要があります。承認されたドメイン名。

2. 実装手順

1. 認証リンクの作成WeChat スキャン コード ログインの実装で最も重要な手順は、ユーザーがログインボタンをクリックすると、認証リンクが生成される必要があります。このリンクを通じて、ユーザーは WeChat でリンクを開き、アプリケーションが自分の WeChat アカウント情報にアクセスすることを承認することに同意できます。

OAuth2.0 プロトコルを使用してユーザー認証を実装できます。認可リンクを生成するコードは次のとおりです。

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

このうち、$redirectUrl は認可後にリダイレクトされる URL、$app は Symfony の ServiceContainer オブジェクトです。

生成された URL は次のようになります:

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

ここで、 はアプリケーション ID、 は承認後にリダイレクトされる URL、 はアプリケーション ID です。 CSRF 攻撃を防ぐために使用される、128 文字以下のランダムな文字列です。

2. 認証トークンを取得する

ユーザーが認証リンクをクリックすると、WeChat コード スキャン ページが表示されます。ユーザーは WeChat コード スキャン ツールを使用して、コードをスキャンしてログインします。最初のステップで設定したリダイレクト URL には、認証コードが付属しています。

このコードを AccessToken と RefreshToken の代わりに使用する必要があります。コードは次のとおりです。

$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

SDK を使用して AccessToken と RefreshToken を取得した後は、今後のアクセス時に AccessToken を使用して基本的なユーザー情報をリクエストできるようになり、RefreshToken を使用して AccessToken を更新する必要があります。

3. ユーザーの基本情報を要求する

取得した AccessToken と OpenID を使用して、ユーザーの基本情報にアクセスする際にパラメーターとして渡します。コードは次のとおりです。 # このうち、$app は Symfony の ServiceContainer オブジェクト、$client は SDK を通じて作成されたインスタンス オブジェクトです。

次に、$user オブジェクトを使用して、ニックネーム、性別、地域、アバター URL などのユーザーの基本情報にアクセスできます。

3. 概要

この記事では、PHP を使用して WeChat コード スキャン ログイン機能を実装する方法を紹介します。主に 3 つのステップに分かれています: 認証リンクの生成、取得認証トークンと基本的なユーザー情報を要求します。実装プロセスでは、AppID と AppSecret の取得方法、WeChat 公式アカウントの OAuth2.0 Web ページ認証ドメイン名の構成方法、SDK の使用方法など、多くの詳細に注意を払う必要があります。この記事の導入により、誰もが WeChat スキャン コード ログインの基本的な実装方法をマスターできたと思います。この機能を自分の Web サイトやアプリケーションに追加して、より便利で安全なログイン方法を提供し、より良いサービスを提供できます。ユーザーエクスペリエンスをユーザーに。

以上がPHPを使用してWeChatコードスキャンログイン機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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