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

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

王林
王林オリジナル
2023-07-30 22:37:551722ブラウズ

PHP と OAuth: Google サインイン統合の実装

OAuth は承認のオープン スタンダードであり、これによりユーザーはサードパーティ アプリケーションを介して他の Web サイト上の自分のデータへのアクセスを承認できます。開発者にとって、OAuth を使用すると、ユーザーはサードパーティのプラットフォームにログインし、ユーザー情報を取得し、ユーザー データにアクセスできるようになります。この記事では、OAuth を使用して Google ログインの統合を実装する方法に焦点を当てます。

Google は、ユーザーによるサービスへのアクセスをサポートするために OAuth 2.0 プロトコルを提供しています。 Google ログイン統合を実装するには、まず Google 開発者アカウントを登録し、Google API プロジェクトを作成する必要があります。次に、Google ログイン統合の実装方法を以下の手順で説明します。

  1. OAuth クライアント ID の作成
    Google API コンソールで、OAuth クライアント ID を作成します。クライアント ID を正常に作成するには、アプリケーション名、リダイレクト URL などの必要な情報を指定する必要があります。作成後、クライアント ID とクライアント シークレットが生成され、後続の手順で使用されます。
  2. リダイレクト URL の設定
    Google API コンソールで、正しいリダイレクト URL が設定されていることを確認します。リダイレクト URL は、ログイン成功後に認証コードとアクセス トークンを取得できるようにユーザーがリダイレクトされる URL アドレスです。
  3. 認可コードの取得
    認可コードを取得するには、クライアント ID、リダイレクト URL、アプリケーション アクセス スコープなどのいくつかのパラメータを含む Google OAuth 認証 URL を構築する必要があります。ユーザーはログインと認証のためにこの URL にリダイレクトされます。サンプル コードは次のとおりです。
$authUrl = 'https://accounts.google.com/o/oauth2/auth';
$client_id = 'YOUR_CLIENT_ID';
$redirect_uri = 'YOUR_REDIRECT_URI';
$scope = 'email profile';
$response_type = 'code';

$url = $authUrl . '?' . http_build_query([
    'client_id' => $client_id,
    'redirect_uri' => $redirect_uri,
    'scope' => $scope,
    'response_type' => $response_type,
]);

header("Location: $url");
exit();
  1. アクセス トークンの取得
    ユーザーが正常にログインして認証すると、認証コードで提供されたリダイレクト URL にリダイレクトされます。アクセス トークンを取得するには、この認証コードを使用する必要があります。サンプル コードは次のとおりです。
$tokenUrl = 'https://www.googleapis.com/oauth2/v4/token';
$client_id = 'YOUR_CLIENT_ID';
$client_secret = 'YOUR_CLIENT_SECRET';
$redirect_uri = 'YOUR_REDIRECT_URI';
$code = $_GET['code'];

$data = [
    'code' => $code,
    'client_id' => $client_id,
    'client_secret' => $client_secret,
    'redirect_uri' => $redirect_uri,
    'grant_type' => 'authorization_code',
];

$options = [
    'http' => [
        'header' => "Content-type: application/x-www-form-urlencoded
",
        'method' => 'POST',
        'content' => http_build_query($data),
    ],
];

$context = stream_context_create($options);
$response = file_get_contents($tokenUrl, false, $context);

$token = json_decode($response, true);
$access_token = $token['access_token'];
  1. ユーザー情報の取得
    アクセス トークンを取得した後、そのトークンを使用してユーザーの電子メールや名前などのユーザー情報を取得できます。以下はサンプル コードです:
$userInfoUrl = 'https://www.googleapis.com/oauth2/v2/userinfo';

$options = [
    'http' => [
        'header' => "Authorization: Bearer $access_token
",
    ],
];

$context = stream_context_create($options);
$response = file_get_contents($userInfoUrl, false, $context);

$userInfo = json_decode($response, true);
$email = $userInfo['email'];
$name = $userInfo['name'];

上記の 5 つの手順を通じて、PHP と OAuth を使用した Google ログインを統合できます。ユーザーが正常にログインした後に認証コードを取得し、その認証コードを使用してアクセス トークンを取得できます。アクセス トークンを使用すると、ユーザー情報を取得してアプリケーションで使用できます。

これは単なる基本的な例ですが、PHP と OAuth を使用して Google ログインを統合する方法を示しています。 OAuth は、Facebook、Twitter などの他のプラットフォームもサポートしています。 OAuth を使用すると、さまざまなサードパーティ プラットフォームのログイン統合を簡単に実装し、ユーザー情報を取得してユーザー データにアクセスできます。

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

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