>  기사  >  백엔드 개발  >  PHP 및 OAuth: Google 로그인 통합 구현

PHP 및 OAuth: Google 로그인 통합 구현

王林
王林원래의
2023-07-30 22:37:551666검색

PHP 및 OAuth: Google 로그인 통합 구현

OAuth는 사용자가 제3자 애플리케이션을 통해 다른 웹사이트에 있는 자신의 데이터에 대한 액세스를 승인할 수 있는 개방형 인증 표준입니다. 개발자의 경우 OAuth를 사용하면 사용자가 타사 플랫폼에 로그인하고, 사용자 정보를 얻고, 사용자 데이터에 액세스할 수 있습니다. 이 기사에서는 OAuth를 사용하여 Google 로그인 통합을 구현하는 방법에 중점을 둘 것입니다.

Google은 사용자가 서비스에 액세스할 수 있도록 OAuth 2.0 프로토콜을 제공합니다. 구글 로그인 통합을 구현하기 위해서는 먼저 구글 개발자 계정을 등록하고 구글 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.