ホームページ >バックエンド開発 >PHPチュートリアル >PHP と OAuth: LinkedIn ログイン統合の実装

PHP と OAuth: LinkedIn ログイン統合の実装

WBOY
WBOYオリジナル
2023-07-28 16:28:501101ブラウズ

PHP と OAuth: LinkedIn ログイン統合の実装

今日のソーシャル メディアの時代では、ユーザーはさまざまなプラットフォームを通じて登録およびログインできるため、Web サイト開発者のユーザー管理とユーザー情報の取得プロセスが大幅に容易になります。 OAuth は、ユーザー名とパスワードを直接提供せずに、サードパーティのアプリケーションが特定のプラットフォーム上のリソースにアクセスすることをユーザーに許可するオープン スタンダードです。この記事では、PHP と OAuth を使用して LinkedIn ログイン統合を実装する方法を学びます。

LinkedIn は、ユーザーが専門家サークル内でネットワークを築き、仕事の経験や成果を共有できるようにするプロフェッショナル ネットワーキング プラットフォームです。 LinkedIn ログインを統合することで、Web サイト開発者はユーザーの個人情報をより簡単に取得し、より正確なユーザー エクスペリエンスを提供できるようになります。

最初のステップは、LinkedIn 開発者プラットフォームでアプリケーションを作成し、アプリケーションの API キーと秘密キーを取得することです。開発者プラットフォームにログインし、アプリケーションを作成し、指示に従って必要な情報を入力します。アプリケーションの作成に成功すると、次に使用する認証情報となる API キーと秘密キーが与えられます。

次に、PHP の OAuth ライブラリを使用して、OAuth 認証プロセスを実装する必要があります。まず、必要な PHP OAuth 拡張機能をインストールする必要があります。コマンド ラインで次のコマンドを実行してインストールします。

$ sudo apt-get install php-oauth

インストールが成功したら、コードの記述を開始できます。

<?php

$api_key = 'YOUR_API_KEY';
$api_secret = 'YOUR_API_SECRET';
$callback_url = 'YOUR_CALLBACK_URL';

$oauth = new OAuth($api_key, $api_secret);
$oauth->setAuthType(OAUTH_AUTH_TYPE_URI);

$request_token = $oauth->getRequestToken('https://api.linkedin.com/uas/oauth/requestToken');
$request_token_info = $oauth->getLastResponseInfo();

if ($request_token_info['http_code'] == 200) {
  $request_token = explode('&', $request_token);
  $oauth_verifier = $request_token['oauth_verifier'];
  $oauth_token = $request_token['oauth_token'];
  
  $_SESSION['oauth_token'] = $oauth_token;
  $_SESSION['oauth_verifier'] = $oauth_verifier;
  
  header('Location: https://api.linkedin.com/uas/oauth/authorize?oauth_token='.$oauth_token);
  exit;
} else {
  // 处理错误
}

?>

上記のコードでは、まず API キーと LinkedIn 開発者プラットフォームで取得したキー、およびコールバック URL を定義します。次に、OAuth ライブラリを使用して OAuth オブジェクトを作成し、認証タイプを URI に設定します。次に、getRequestToken メソッドを使用してリクエスト トークンを取得し、応答情報を取得します。リクエスト トークンの取得が成功した場合、応答からのトークンと認証子をセッションに保存し、ユーザーを認証のために LinkedIn 認証ページにリダイレクトします。

承認が完了すると、LinkedIn はユーザーをアプリケーションにリダイレクトし、バリデーターをクエリ パラメーターとしてコールバック URL に追加します。コールバック ページで認証子を取得し、それを使用してアクセス トークンを取得できます。

<?php

$api_key = 'YOUR_API_KEY';
$api_secret = 'YOUR_API_SECRET';
$callback_url = 'YOUR_CALLBACK_URL';

$oauth_token = $_SESSION['oauth_token'];
$oauth_verifier = $_SESSION['oauth_verifier'];

$oauth = new OAuth($api_key, $api_secret);
$oauth->setAuthType(OAUTH_AUTH_TYPE_URI);
$oauth->setToken($oauth_token, $oauth_verifier);

$access_token = $oauth->getAccessToken('https://api.linkedin.com/uas/oauth/accessToken');
$access_token_info = $oauth->getLastResponseInfo();

if ($access_token_info['http_code'] == 200) {
  $access_token = explode('&', $access_token);
  $oauth_token = $access_token['oauth_token'];
  $oauth_token_secret = $access_token['oauth_token_secret'];
  
  // 使用访问令牌获取用户数据 
} else {
  // 处理错误
}

?>

上記のコードでは、まず、以前に保存したトークンと認証子をセッションから取得します。次に、これらのトークンとオーセンティケーターを使用して OAuth オブジェクトを作成し、認可タイプを URI に設定します。次に、getAccessToken メソッドを使用してアクセス トークンを取得し、応答情報を取得します。アクセス トークンの取得に成功した場合は、応答からのトークンとキーを適切な変数に保存します。

次のステップは、アクセス トークンを使用してユーザー データを取得することです。 LinkedIn の API ドキュメントによると、アクセス トークンを使用してユーザーの基本情報、関連会社、役職などの情報を取得できます。

サンプル コードは次のとおりです。

<?php

$api_key = 'YOUR_API_KEY';
$api_secret = 'YOUR_API_SECRET';
$callback_url = 'YOUR_CALLBACK_URL';
$oauth_token = 'USER_ACCESS_TOKEN';
$oauth_token_secret = 'USER_ACCESS_TOKEN_SECRET';

$oauth = new OAuth($api_key, $api_secret);
$oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
$oauth->setToken($oauth_token, $oauth_token_secret);

$oauth->fetch('https://api.linkedin.com/v2/me');
$user_data = json_decode($oauth->getLastResponse());

// 处理用户数据

?>

上記のコードでは、最初に API キー、API キー、コールバック URL、ユーザーのアクセス トークンとシークレットを定義します。次に、OAuth オブジェクトを作成し、承認タイプを Authorization に設定します。次に、ユーザーのアクセス トークンと秘密キーを使用してユーザー データを取得します。この例では、LinkedIn の v2 API を使用してユーザーのプロファイルを取得します。

ユーザーデータを取得した後、必要に応じてデータを処理できます。ユーザー データをデータベースに保存したり、特定のビジネス ロジックに基づいて他の操作を実行したりできます。

この記事を通じて、PHP と OAuth を使用して LinkedIn ログイン統合を実装する方法を学びました。 OAuth を通じて、LinkedIn と安全に通信し、ユーザーのプロフィールを取得できます。このようにして、よりパーソナライズされた正確なユーザー エクスペリエンスをユーザーに提供できます。

この記事がお役に立てば幸いです。また、開発の成功をお祈りしています。

以上がPHP と OAuth: LinkedIn ログイン統合の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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