현재 위치: > 최신 기사 목록> PHP는 Oauth를 구현합니다 : 크로스 플랫폼 SSO 로그인 솔루션 구축

PHP는 Oauth를 구현합니다 : 크로스 플랫폼 SSO 로그인 솔루션 구축

M66 2025-06-13

PHP는 Oauth를 구현합니다 : 크로스 플랫폼 SSO 로그인 솔루션 구축

인터넷의 빠른 개발로 인해 사용자가 여러 플랫폼간에 전환하고 로그인하는 것이 점점 더 일반적이되었습니다. 그러나 이것은 또한 몇 가지 과제, 특히 크로스 플랫폼 단일 사인온 (SSO)을 구현하는 방법을 제시합니다. OAUTH (Open Authorization)는 안전하고 효율적인 기술 로서이 문제에 대한 이상적인 솔루션입니다.

OAUTH는 사용자가 타사 앱을 승인 할 수있는 개방형 표준입니다. OAUTH를 통해 사용자는 한 플랫폼에서 한 번에 로그인하고 다른 플랫폼에서 자동으로 로그인하여 로그인 프로세스를 단순화 할 수 있습니다.

이 기사는 PHP를 사용하여 OAUTH 프로토콜을 구현하고 간단한 크로스 플랫폼 SSO 솔루션을 구축하는 방법을 소개합니다.

1. OAUTH 클라이언트를 구성하십시오

이 예에서는 플랫폼 A와 플랫폼 B의 두 가지 플랫폼이 있다고 가정합니다. 첫째, 각 플랫폼에서 OAUTH 클라이언트를 설정하여 서로 통신 할 수 있도록해야합니다. 플랫폼 A에서는 PHP의 OAUTH 확장을 사용하여 OAUTH 클라이언트 기능을 구현합니다.

먼저 플랫폼 A에 응용 프로그램을 등록하고 클라이언트 ID 및 클라이언트 키를 얻으십시오.

다음으로 Platform B로 Oauth 인증 프로세스를 처리하기 위해`oauth.php`라는 파일을 만듭니다.이 파일에서는 Oauth 확장자를 소개해야합니다.

<?php
require_once 'OAuth/OAuth.php';
?>

그런 다음 플랫폼 B에 대한 인증 URL과 플랫폼 A에 등록한 OAUTH 클라이언트 자격 증명을 설정했습니다.

<?php
define('AUTH_URL', 'https://platform-b.com/oauth/authorize');
define('CLIENT_ID', 'YOUR_CLIENT_ID');
define('CLIENT_SECRET', 'YOUR_CLIENT_SECRET');
?>

2. OAUTH 인증 URL을 생성합니다

다음으로 OAUTH 인증 URL을 생성하는 함수를 정의합니다. 이 기능은 매개 변수로 리디렉션 URL을 수신하고 OAUTH 확장을 사용하여 플랫폼 B에 승인 요청을 보냅니다.

<?php
function generate_auth_url($redirect_url) {
    $oauth = new OAuth(CLIENT_ID, CLIENT_SECRET);
    $request_token = $oauth-> getRequestToken (auth_url, $ redirect_url);
    $ auth_url = $ oauth-> getAuthorizeUrl ($ request_token [ &#39;token&#39;]);
    $ auth_url을 반환합니다.
}
?>

플랫폼 A의 로그인 페이지에서 'generate_auth_url` 함수를 호출하여 인증 URL을 생성하고 해당 URL로 사용자를 리디렉션 할 수 있습니다.

<?php
$redirect_url = 'https://platform-a.com/callback.php';
$auth_url = generate_auth_url($redirect_url);
header('Location: ' . $auth_url);
exit();
?>

3. 인증 콜백 처리

`Callback.php` 파일에서 플랫폼 B의 인증 콜백을 처리하고 인증 코드를 가져오고이를 사용하여 액세스 토큰을 얻습니다. 이렇게하면 플랫폼 B의 리소스에 액세스 할 수 있습니다.

<?php
$oauth = new OAuth(CLIENT_ID, CLIENT_SECRET);
$access_token = $oauth->getAccessToken ($ _ get [ &#39;code&#39;]);
$ access_token_secret = $ access_token [ &#39;oauth_token_secret&#39;];

// 데이터베이스 또는 기타 스토리지 매체의 액세스 토큰을 save_access_token ($ access_token)에 저장합니다.
?>

4. 액세스 토큰을 사용하여 플랫폼 B 리소스에 액세스하십시오

플랫폼 A의 다른 페이지에서 저장된 액세스 토큰을 사용하여 플랫폼 B의 API에 액세스하고 사용자 정보를 얻을 수 있습니다.

<?php
$oauth = new OAuth(CLIENT_ID, CLIENT_SECRET);
$access_token = get_access_token_from_database();
$oauth-> settoken ($ access_token [ &#39;oauth_token&#39;], $ access_token [ &#39;oauth_token_secret&#39;]);
$ response = $ oauth-> fetch ( &#39;https://platform-c.com/api/userinfo&#39;);
$ user_info = json_decode ($ response [ &#39;response&#39;], true);

// 프로세스 사용자 정보 프로세스 프로세스 _user_Info ($ user_info);
?>

5. 액세스 토큰을 확인하고 사용자 정보를 반환하십시오

플랫폼 B의 API에서는 액세스 토큰을 사용하여 사용자의 신원을 확인하고 해당 리소스 정보를 반환 할 수 있습니다.

<?php
$oauth = new OAuth(CLIENT_ID, CLIENT_SECRET);
$access_token = get_access_token_from_database();
$oauth-> settoken ($ access_token [ &#39;oauth_token&#39;], $ access_token [ &#39;oauth_token_secret&#39;]);

if ($ oauth-> fetch ( &#39;https://platform-b.com/api/verifytoken&#39;) [ &#39;응답&#39;] == &#39;OK&#39;) {
    $ user_info = get_user_info ();
    echo json_encode ($ user_info);
}
?>

요약

위의 단계를 통해 OAUTH를 기반으로 한 크로스 플랫폼 SSO 솔루션을 성공적으로 구현했습니다. 플랫폼 A에 로그인 한 후 사용자는 플랫폼 B에 자동으로 로그인하고 두 플랫폼간에 관련 사용자 정보를 공유하여 사용자 경험을 향상시키고 개발 프로세스를 단순화 할 수 있습니다.

이 기사가 PHP를 사용하여 OAUTH를 구현하는 방법과 효율적인 크로스 플랫폼 SSO 시스템을 구축하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 두십시오.