PHP 및 OAuth를 사용하여 Github 로그인 통합을 수행하는 방법

王林
풀어 주다: 2023-07-28 16:04:01
원래의
892명이 탐색했습니다.

Github 로그인 통합을 위해 PHP와 OAuth를 사용하는 방법

현재 인터넷 시대에 사용자 로그인은 거의 모든 웹사이트와 애플리케이션에 필요한 기능 중 하나가 되었습니다. 그러나 사용자 편의를 위해 많은 웹사이트에서는 제3자 로그인 공급자를 통합하여 로그인 프로세스를 단순화합니다. 이 기사에서는 PHP와 OAuth를 사용하여 Github 로그인 통합을 구현하는 방법을 살펴보겠습니다.

OAuth(개방형 인증)는 사용자가 사용자 이름과 비밀번호를 제공하지 않고도 리소스에 액세스할 수 있도록 타사 애플리케이션을 인증할 수 있는 개방형 표준입니다. 세계 최고의 오픈 소스 코드 관리 플랫폼인 Github는 사용자가 로그인할 수 있도록 OAuth2.0 인증 메커니즘을 제공합니다.

먼저 Github에서 OAuth 애플리케이션을 신청해야 합니다. Github 계정에 로그인하고 "설정" -> "개발자 설정" -> "OAuth 앱"으로 이동한 후 "새 OAuth 앱"을 클릭하여 새 OAuth 애플리케이션을 생성하세요. 이름, 설명, 홈페이지 URL, 콜백 URL 등 애플리케이션의 기본 정보를 입력합니다. 콜백 URL에 사용자가 로그인을 완료한 후 돌아갈 URL을 입력합니다. 완료되면 Github는 애플리케이션에 "클라이언트 ID" 및 "클라이언트 비밀번호" 인증 자격 증명을 제공합니다.

다음으로 PHP에서 Github 로그인 통합을 구현해야 합니다. 먼저 "github_login.php"라는 파일을 만들고 OAuth 라이브러리를 가져옵니다.

<?php
require_once 'oauth/OAuth.php';
로그인 후 복사

그런 다음 Github 앱에 대한 인증 자격 증명과 콜백 URL을 정의합니다.

$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
$redirectUri = 'YOUR_REDIRECT_URL';
로그인 후 복사

Github 로그인 통합에서는 두 단계를 구현해야 합니다. 먼저, 사용자가 로그인 링크를 클릭하고 인증을 위해 Github로 이동할 수 있도록 로그인 링크를 생성해야 합니다.

$baseUrl = 'https://github.com/login/oauth/authorize';
$params = array(
    'client_id' => $clientId,
    'redirect_uri' => $redirectUri,
    'scope' => 'user'
);
$loginUrl = $baseUrl . '?' . http_build_query($params);

echo '<a href="' . $loginUrl . '">使用Github账号登录</a>';
로그인 후 복사

사용자가 로그인 링크를 클릭하면 Github는 인증 코드와 함께 사용자를 지정된 콜백 URL로 이동합니다. 콜백 URL에서 다음 코드를 통해 인증 코드를 얻을 수 있습니다.

$code = $_GET['code'];
로그인 후 복사

다음으로 인증 코드를 사용하여 Github에서 액세스 토큰을 얻어야 합니다.

$baseUrl = 'https://github.com/login/oauth/access_token';
$params = array(
    'client_id' => $clientId,
    'client_secret' => $clientSecret,
    'code' => $code,
    'redirect_uri' => $redirectUri
);
$tokenUrl = $baseUrl . '?' . http_build_query($params);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $tokenUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$accessToken = json_decode($response, true)['access_token'];
로그인 후 복사

마지막으로 얻은 액세스 토큰을 사용하여 Github 정보의 사용자:

$baseUrl = 'https://api.github.com/user';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $baseUrl);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: token ' . $accessToken));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$userData = json_decode($response, true);

// 输出用户信息
echo 'Github用户名:' . $userData['login'];
echo 'Github用户ID:' . $userData['id'];
로그인 후 복사

위 단계를 통해 PHP 및 OAuth를 사용하여 Github 로그인 통합 프로세스를 구현했습니다. 실제 응용에서는 획득한 사용자 정보를 데이터베이스에 저장하여 사용자 등록 또는 로그인의 논리적 처리를 완료할 수 있습니다.

요약하자면, PHP와 OAuth를 사용한 Github 로그인 통합은 복잡하지 않습니다. Github에서 제공하는 OAuth2.0 인증 메커니즘을 통해 사용자에게 빠르고 안전한 로그인 경험을 제공할 수 있습니다. 이 글이 Github 로그인 통합을 이해하고 구현하는 데 도움이 되기를 바랍니다.

위 내용은 PHP 및 OAuth를 사용하여 Github 로그인 통합을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!