인터넷의 빠른 개발로 인해 사용자가 여러 플랫폼간에 전환하고 로그인하는 것이 점점 더 일반적이되었습니다. 그러나 이것은 또한 몇 가지 과제, 특히 크로스 플랫폼 단일 사인온 (SSO)을 구현하는 방법을 제시합니다. OAUTH (Open Authorization)는 안전하고 효율적인 기술 로서이 문제에 대한 이상적인 솔루션입니다.
OAUTH는 사용자가 타사 앱을 승인 할 수있는 개방형 표준입니다. OAUTH를 통해 사용자는 한 플랫폼에서 한 번에 로그인하고 다른 플랫폼에서 자동으로 로그인하여 로그인 프로세스를 단순화 할 수 있습니다.
이 기사는 PHP를 사용하여 OAUTH 프로토콜을 구현하고 간단한 크로스 플랫폼 SSO 솔루션을 구축하는 방법을 소개합니다.
이 예에서는 플랫폼 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'); ?>
다음으로 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 [ 'token']); $ 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(); ?>
`Callback.php` 파일에서 플랫폼 B의 인증 콜백을 처리하고 인증 코드를 가져오고이를 사용하여 액세스 토큰을 얻습니다. 이렇게하면 플랫폼 B의 리소스에 액세스 할 수 있습니다.
<?php $oauth = new OAuth(CLIENT_ID, CLIENT_SECRET); $access_token = $oauth->getAccessToken ($ _ get [ 'code']); $ access_token_secret = $ access_token [ 'oauth_token_secret']; // 데이터베이스 또는 기타 스토리지 매체의 액세스 토큰을 save_access_token ($ access_token)에 저장합니다. ?>
플랫폼 A의 다른 페이지에서 저장된 액세스 토큰을 사용하여 플랫폼 B의 API에 액세스하고 사용자 정보를 얻을 수 있습니다.
<?php $oauth = new OAuth(CLIENT_ID, CLIENT_SECRET); $access_token = get_access_token_from_database(); $oauth-> settoken ($ access_token [ 'oauth_token'], $ access_token [ 'oauth_token_secret']); $ response = $ oauth-> fetch ( 'https://platform-c.com/api/userinfo'); $ user_info = json_decode ($ response [ 'response'], true); // 프로세스 사용자 정보 프로세스 프로세스 _user_Info ($ user_info); ?>
플랫폼 B의 API에서는 액세스 토큰을 사용하여 사용자의 신원을 확인하고 해당 리소스 정보를 반환 할 수 있습니다.
<?php $oauth = new OAuth(CLIENT_ID, CLIENT_SECRET); $access_token = get_access_token_from_database(); $oauth-> settoken ($ access_token [ 'oauth_token'], $ access_token [ 'oauth_token_secret']); if ($ oauth-> fetch ( 'https://platform-b.com/api/verifytoken') [ '응답'] == 'OK') { $ user_info = get_user_info (); echo json_encode ($ user_info); } ?>
위의 단계를 통해 OAUTH를 기반으로 한 크로스 플랫폼 SSO 솔루션을 성공적으로 구현했습니다. 플랫폼 A에 로그인 한 후 사용자는 플랫폼 B에 자동으로 로그인하고 두 플랫폼간에 관련 사용자 정보를 공유하여 사용자 경험을 향상시키고 개발 프로세스를 단순화 할 수 있습니다.
이 기사가 PHP를 사용하여 OAUTH를 구현하는 방법과 효율적인 크로스 플랫폼 SSO 시스템을 구축하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 두십시오.