> 백엔드 개발 > PHP 튜토리얼 > PHP에서 OAuth 인증을 사용하는 방법

PHP에서 OAuth 인증을 사용하는 방법

PHPz
풀어 주다: 2023-06-22 08:50:02
원래의
947명이 탐색했습니다.

OAuth 인증 프로토콜은 점점 더 많은 애플리케이션이 제3자 로그인을 지원하기 시작하면서 최근 몇 년 동안 점점 더 인기를 얻고 있습니다. OAuth를 구현하면 타사 애플리케이션이 사용자 비밀번호를 몰라도 다른 애플리케이션에서 사용자 인증을 얻을 수 있습니다. 널리 사용되는 서버측 프로그래밍 언어인 PHP는 OAuth 인증도 지원합니다. 이 기사에서는 PHP의 OAuth 라이브러리를 사용하여 OAuth 인증을 구현하는 방법을 소개합니다.

OAuth란 무엇인가요?

OAuth는 인증 표준 프로토콜로, 애플리케이션이 비밀번호를 공개하지 않고 사용자 인증을 통해 다른 애플리케이션의 API 또는 데이터에 액세스할 수 있도록 하는 개방적이고 안전한 프로토콜입니다. 이는 주로 사용자가 타사 애플리케이션에 사용자 이름과 비밀번호를 제공하지 않고 타사 애플리케이션이 다른 애플리케이션의 사용자 데이터에 액세스할 수 있도록 허용하는 데 사용됩니다.

OAuth 인증의 기본 프로세스:

OAuth 2.0 인증 프로세스는 승인된 액세스를 기반으로 하는 프로세스입니다. 기본 프로세스는 다음과 같습니다.

  1. 사용자는 클라이언트 애플리케이션에서 리소스에 대한 액세스를 요청합니다.
  2. 클라이언트 애플리케이션은 사용자를 인증 서버로 리디렉션하여 필요한 사용자 인증 정보를 제공합니다.
  3. 인증 서버는 사용자의 리소스에 액세스하기 위해 클라이언트 애플리케이션을 승인할지 여부를 사용자에게 묻습니다.
  4. 사용자 인증을 통해 인증 서버는 클라이언트 애플리케이션에 액세스 토큰을 발급합니다.
  5. 클라이언트 애플리케이션은 리소스 서버에 액세스 토큰을 제공합니다.
  6. 리소스 서버는 액세스 토큰의 유효성을 검사합니다. 액세스 토큰이 유효하면 요청된 리소스가 클라이언트 애플리케이션에 제공됩니다.

PHP의 OAuth 라이브러리를 사용하여 OAuth 인증 구현

먼저 PHP OAuth 확장 라이브러리의 기본 개념과 사용법을 이해해야 합니다. PHP OAuth 확장 라이브러리는 OAuth 프로토콜을 직접 구현하는 기능을 제공합니다. OAuth 버전 1.0a 및 2.0 사양. PHP OAuth 확장 라이브러리는 서버에 설치해야 합니다. PHP OAuth와 OAuth 2.0은 동일하지 않으므로 두 가지 다른 버전의 라이브러리를 설치해야 합니다.

OAuth 라이브러리를 사용하여 PHP에서 OAuth 인증을 구현하는 단계는 다음과 같습니다.

1단계: PHP OAuth 확장 라이브러리 설치

먼저 서버에 PHP OAuth 확장 라이브러리가 설치되어 있는지 확인해야 합니다. 이미 설치되어 있는 경우 이 단계를 건너뜁니다. 설치되어 있지 않은 경우 아래 단계에 따라 설치하십시오.

  1. 명령을 사용하여 직접 설치하십시오(루트 권한 필요):

    sudo apt-get install php-oauth

  2. 설치하려는 경우 수동으로 다음 단계를 따르세요.

    1. 최신 버전의 PHP OAuth 확장 라이브러리를 다운로드하세요.
    2. 다운로드한 파일의 압축을 풀고 압축이 풀린 디렉터리로 들어갑니다.
    3. 다음 명령을 실행합니다:

      phpize

    4. 구성:

      ./configure

    5. 컴파일 및 설치:

      make && sudo make install

2단계: OAuth 신청 준비 정보

OAuth 인증을 사용하려면 OAuth 제공업체에 애플리케이션을 등록하고 자격 증명을 얻어야 합니다. 각 OAuth 제공업체에는 특정 애플리케이션 등록 프로세스가 있으므로 해당 지침에 따라 등록 프로세스를 완료해야 합니다. 성공적으로 등록하고 자격 증명을 얻은 후에는 다음 정보를 받게 됩니다.

  1. 클라이언트 ID
  2. 클라이언트 키
  3. 인증 범위
  4. Auth Endpoint
  5. Token Endpoint

3단계: 다음을 사용하여 OAuth 공급자에 연결합니다. OAuth 자격 증명

OAuth 공급자에 연결하고 승인을 요청하려면 다음 단계를 따르세요.

  1. OAuth 개체 만들기:

    $oauth = new OAuth(

     'your client id',   //客户端ID
     'your client secret',   //客户端密钥
     OAUTH_SIG_METHOD_HMACSHA1,  //签名方法
     OAUTH_AUTH_TYPE_AUTHORIZATION //认证类型
    로그인 후 복사
    로그인 후 복사

    );

  2. OAuth 공급자 설정 인증 및 토큰 엔드포인트:

    $oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
    $oauth->setRequestTokenUrl('https://provider.com/oauth/request_token');
    $ oauth->setAccessTokenUrl('https ://provider.com/oauth/access_token');
    $oauth->setAuthUrl('https://provider.com/oauth/authorize');

  3. 요청 받기 토큰:

    $oauth-> ;getRequestToken('https://provider.com/oauth/request_token', 'callback url');

4단계: OAuth 인증 토큰

을 사용하여 요청 토큰 받기 토큰을 받은 후 다음을 수행해야 합니다. 인증 토큰을 사용하여 OAuth 공급자의 보호된 리소스에 액세스합니다. 인증 토큰을 사용하려면 이를 OAuth 공급자에게 보내고 액세스 토큰을 요청해야 합니다. 액세스 토큰을 얻은 후 보호된 API를 호출하는 리소스에 액세스할 수 있습니다.

다음 샘플 코드는 인증 토큰을 사용하여 보호된 API에 액세스하는 방법을 보여줍니다.

  1. OAuth 개체 만들기:

    $oauth = new OAuth(

     'your client id',   //客户端ID
     'your client secret',   //客户端密钥
     OAUTH_SIG_METHOD_HMACSHA1,  //签名方法
     OAUTH_AUTH_TYPE_AUTHORIZATION //认证类型
    로그인 후 복사
    로그인 후 복사

    );

  2. OAuth 공급자의 인증 및 토큰 끝점 설정:

    $oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
    $oauth ->setRequestTokenUrl('https://provider.com/oauth/request_token');
    $oauth->setAccessTokenUrl('https://provider.com/oauth/access_token');
    $oauth-> ;setAuthUrl ('https://provider.com/oauth/authorize');

  3. 인증 토큰 받기:

    $oauth->setToken('액세스 토큰', '액세스 토큰 비밀번호')

  4. 액세스 보호 API:

    $oauth->fetch('https://provider.com/api/resource');

요약

OAuth 인증은 애플리케이션이 비밀번호를 공개하지 않고 다른 애플리케이션의 사용자 데이터를 안전하게 요청할 수 있도록 하는 널리 사용되는 인증 표준입니다. PHP OAuth 확장 라이브러리는 OAuth 프로토콜의 직접적인 구현을 제공하므로 PHP에서 OAuth 인증을 쉽게 구현할 수 있습니다. OAuth 인증을 사용하면 사용자 데이터가 안전하고 남용되지 않도록 할 수 있습니다.

위 내용은 PHP에서 OAuth 인증을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿