ホームページ  >  記事  >  バックエンド開発  >  PHPはサードパーティのログイン機能を実装します

PHPはサードパーティのログイン機能を実装します

WBOY
WBOYオリジナル
2023-06-22 22:50:491592ブラウズ

インターネットの発展に伴い、サードパーティのログイン機能をサポートする 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 サイトの他の関連記事を参照してください。

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