ホームページ  >  記事  >  バックエンド開発  >  PHPを使用してWeChatログイン機能を実装する詳細な手順

PHPを使用してWeChatログイン機能を実装する詳細な手順

PHPz
PHPzオリジナル
2023-04-04 10:40:532522ブラウズ

近年、ソーシャル ネットワークの台頭とスマートフォンの普及により、WeChat は人々の日常生活に欠かせないものになりました。インターネットアプリケーションの分野では、WeChatログイン機能の実装は非常に必要な部分です。ご存知のとおり、WeChat の認証メカニズムは OAuth 2.0 認証メカニズムを使用しており、WeChat ログイン機能の実装に非常に便利です。以下では、PHP言語を使用してWeChatログイン機能を実装する方法を詳しく紹介します。

1. WeChat 開発プラットフォームの設定

  1. [WeChat オープン プラットフォーム](https://open.weixin.qq.com) にログインしてアカウントを登録します。完了したら、WeChat オープン プラットフォーム管理センターに入ります。
  2. 中央ページの「公式アカウントの管理」メニューをクリックし、アクセスする必要があるWeChat公式アカウント情報を入力します。
  3. WeChat オープン プラットフォームによって認証された後、WeChat オープン プラットフォームの AppID と AppSecret を取得し、ログイン コードに記録する必要があります。 [WeChatオープンプラットフォーム](https://open.weixin.qq.com)にログインし、管理センターに入り、「モバイルアプリケーション」を選択し、「モバイルアプリケーションの追加」を選択します。
  4. モバイル アプリケーションの基本情報を入力し、レビューのために送信します。レビューと承認後、AppID と AppSecret を取得できます。

2. PHP コードの実装

  1. WeChat ログイン リンクの構築
<?php
$appid = “your_appid”; //appid
$redirect_uri = urlencode(&#39;http://yourdomain.com/login.php&#39;); //登录成功回调网址,请确保此地址跟公众号设置的授权回调页面路径一致。
$scope = &#39;snsapi_userinfo&#39;; //snsapi_base 或 snsapi_userinfo
$url = &#39;https://open.weixin.qq.com/connect/oauth2/authorize?appid=&#39; . $appid . &#39;&redirect_uri=&#39; . $redirect_uri . &#39;&response_type=code&scope=&#39; . $scope . &#39;&state=STATE#wechat_redirect&#39;;
header(&#39;Location:&#39; . $url);
exit;
?>

上記のコードでは、$appid を入力する必要があります。 $redirect_uri と $scope パラメータ。このうち、$appid は WeChat オープン プラットフォームによって割り当てられた AppID、$redirect_uri はユーザー認証後のコールバック URL (公式アカウントが設定した認証コールバック ページと一致する必要がある)、$scope は snsapi_base と 2 つに分かれています。 snsapi_userinfo 、前者はユーザーの openid のみを取得でき、後者はユーザーの基本情報を取得できます。

  1. access_token と openid を取得する
<?php
$appid = &#39;your_appid&#39;; //appid
$secret = &#39;your_appsecret&#39;; //appsecret
$code = $_GET[&#39;code&#39;]; //网页授权code
$access_token_url = &#39;https://api.weixin.qq.com/sns/oauth2/access_token?appid=&#39; . $appid . &#39;&secret=&#39; . $secret . &#39;&code=&#39; . $code . &#39;&grant_type=authorization_code&#39;; //获取access_token和openid的链接
$access_token = file_get_contents($access_token_url);
$access_token_arr = json_decode($access_token, true); //将返回的json字符串转为数组
?>

このコードでは、承認が成功した後にユーザーから返されたコードを渡し、そのコードを WeChat サーバーに渡して取得します。 access_token と openid。

  1. ユーザーの基本情報を取得する
<?php
$access_token = $access_token_arr[&#39;access_token&#39;];
$openid = $access_token_arr[&#39;openid&#39;];
$user_info_url = &#39;https://api.weixin.qq.com/sns/userinfo?access_token=&#39; . $access_token . &#39;&openid=&#39; . $openid . &#39;&lang=zh_CN&#39;; //获取用户信息的链接
$user_info = file_get_contents($user_info_url);
$user_info_arr = json_decode($user_info, true); //将返回的json字符串转为数组
?>

このコードでは、access_token と openid を使用して、ユーザーのニックネーム、性別、都市などのユーザーの基本情報を取得します。 。ユーザーの基本情報を取得する前に、ユーザーが snsapi_userinfo へのスコープを承認していることを確認する必要があることに注意してください。

  1. 完全なログイン サンプル コード
<?php
if (!isset($_GET[&#39;code&#39;]) || empty($_GET[&#39;code&#39;])) {
    //第一步:用户同意授权,获取code
    $appid = &#39;your_appid&#39;;
    $redirect_uri = urlencode(&#39;http://yourdomain.com/login.php&#39;);
    $scope = &#39;snsapi_userinfo&#39;;
    $url = &#39;https://open.weixin.qq.com/connect/oauth2/authorize?appid=&#39; . $appid . &#39;&redirect_uri=&#39; . $redirect_uri . &#39;&response_type=code&scope=&#39; . $scope . &#39;&state=STATE#wechat_redirect&#39;;
    header(&#39;Location:&#39; . $url);
    exit;
} else {
    //第二步:通过code换取网页授权access_token以及openid,再获取用户信息
    $appid = &#39;your_appid&#39;;
    $secret = &#39;your_appsecret&#39;;
    $code = $_GET[&#39;code&#39;];
    $access_token_url = &#39;https://api.weixin.qq.com/sns/oauth2/access_token?appid=&#39; . $appid . &#39;&secret=&#39; . $secret . &#39;&code=&#39; . $code . &#39;&grant_type=authorization_code&#39;;
    $access_token = file_get_contents($access_token_url);
    $access_token_arr = json_decode($access_token, true);
    $access_token = $access_token_arr[&#39;access_token&#39;];
    $openid = $access_token_arr[&#39;openid&#39;];
    $user_info_url = &#39;https://api.weixin.qq.com/sns/userinfo?access_token=&#39; . $access_token . &#39;&openid=&#39; . $openid . &#39;&lang=zh_CN&#39;;
    $user_info = file_get_contents($user_info_url);
    $user_info_arr = json_decode($user_info, true);

    //TODO:在这里可以将用户信息存入数据库,供之后使用
    //......
}
?>

3. 概要

上記のように、いくつかの簡単な手順で、PHP 言語を使用して WeChat を実装できます。ログイン機能。この記事では、WeChat ログインの最も基本的な実装方法のみを紹介しますが、実際のアプリケーションでは、ユーザーの権限の判断、認証の有効期間など、さらに注意が必要な問題があります。この記事が、WeChat ログインを実装する必要がある開発者に何らかの助けになれば幸いです。

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

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