インターネットの発展に伴い、サードパーティのログイン機能をサポートする Web サイトが増えています。サードパーティのログインを通じて、ユーザーは既存のソーシャル アカウント (WeChat、QQ、Weibo など) をログイン認証情報として使用できるため、登録を繰り返したり、さまざまなアカウントのパスワードを覚えたりする手間が省け、ユーザー エクスペリエンスが大幅に向上します。この記事では、WeChat ログインを例として、PHP を使用してサードパーティ ログイン機能を実装する方法を説明します。
ステップ 1: WeChat オープン プラットフォーム アカウントを取得する
WeChat にログインするには、まず WeChat オープン プラットフォーム アカウントを持っている必要があります。 WeChatオープンプラットフォームにアカウントを登録した後、新しいアプリケーションを作成し、「開発-基本構成」にアプリケーションID、アプリケーションキーなどのアプリケーションの基本情報を入力する必要があります。
アプリケーションを作成した後、WeChat パブリック アカウント認証または WeChat ログイン認証も必要です。この記事では WeChat のログイン認証についてのみ説明します。認証後、アプリケーションは WeChat ユーザーのアバターやニックネームなどの基本情報を取得することが許可されます。
ステップ 2: ログイン リンクを作成する
アプリケーション ID とアプリケーション キーを取得したら、ユーザーの WeChat ログイン リンクを作成できます。ユーザーがこのリンクをクリックすると、WeChat Web ページの認証ページにジャンプし、ユーザーが認証を確認した後、設定した URL アドレスに自動的に戻り、認証コードを返します。
以下はログインリンクを作成するPHPコードです:
$login_url = ‘https://open.weixin.qq.com/connect/oauth2/authorize?appid=’ . $appid . ‘&redirect_uri=’ . urlencode($redirect_uri) . ‘&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect’;
このうち、$appidはアプリケーションID、$redirect_uriはジャンプ先のURLアドレスです。 $redirect_uri はパラメータを運ぶことができず、urlencode でエスケープして URL に結合することしかできないことに注意してください。そうしないと、認証コードが正しく受信されません。
ステップ 3: access_token を取得する
Access_token と openid は、2 番目のステップで返されたコードを通じて取得できます。 Access_token は、WeChat がユーザーを識別するために使用する一意の識別子であり、より高度なユーザー情報を取得するために使用できます。 access_token を取得するための具体的な PHP コードは次のとおりです。
$token_url = ‘https://api.weixin.qq.com/sns/oauth2/access_token?appid=’ . $appid . ‘&secret=’ . $secret . ‘&code=’ . $code . ‘&grant_type=authorization_code’; $resp = file_get_contents($token_url); $resp_arr = json_decode($resp, true); $access_token = $resp_arr[‘access_token’];
このうち、$secret がアプリケーションキー、$code が認証コードです。ここでは、file_get_contents 関数を使用して HTTP リクエストを送信し、返された JSON 文字列を解析して配列にし、access_token を取得します。
ステップ 4: ユーザー情報の取得
access_token を取得した後、この access_token を使用してユーザーの詳細情報を取得できます。以下のリンクにアクセスすると、ユーザーのopenid、ニックネーム、アバターなどの情報を取得できます。
$userinfo_url = ‘https://api.weixin.qq.com/sns/userinfo?access_token=’ . $access_token . ‘&openid=’ . $openid . ‘&lang=zh_CN’; $userinfo_resp = file_get_contents($userinfo_url); $userinfo = json_decode($userinfo_resp, true); $nickname = $userinfo[‘nickname’];
これまで、PHP を介して WeChat ログイン機能を実装しました。上記のコードを使用すると、対応する API インターフェイスを置き換えて、対応するユーザー情報を取得するだけで、他のソーシャル ネットワーキング サイトへのサードパーティ ログインを実装できます。
サードパーティのログインのセキュリティを考慮する必要があり、ハッカーによる悪用を避けるために、ログイン プロセス中に CSRF 攻撃を防ぐ手段を追加する必要があることに注意してください。
以上がPHPはサードパーティのログイン機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。