>백엔드 개발 >PHP 튜토리얼 >Hybridauth와 PHP의 소셜 로그

Hybridauth와 PHP의 소셜 로그

Joseph Gordon-Levitt
Joseph Gordon-Levitt원래의
2025-02-18 11:26:10534검색
많은 최신 웹 사이트를 통해 사용자는 소셜 네트워크 계정을 통해 로그인 할 수 있습니다. 예를 들어, itepoint 커뮤니티를 사용하면 사용자가 새 계정을 등록하지 않고 Facebook, Twitter, Google, Yahoo 또는 Github 계정에 로그인 할 수 있습니다.

이 튜토리얼은 소셜 로그인 기능의 구성을 단순화하는 PHP 라이브러리 인 Hybridauth를 소개합니다. Social Logins in PHP with HybridAuth Hybridauth는 애플리케이션과 다양한 사회적 API 및 신원 제공자 사이의 추상 API 역할을합니다.

키 포인트

Hybridauth는 소셜 로그인의 웹 사이트에 통합을 단순화하고 응용 프로그램과 다양한 소셜 API 사이의 중간 계층 역할을하도록 설계된 PHP 라이브러리입니다.

Composer를 통해 Hybridauth를 설치하는 것이 좋습니다. Facebook, Google 및 Twitter와 같은 각 소셜 네트워크마다 제대로 작동하려면 특정 자격 증명이 필요합니다.

이 라이브러리는 보안 액세스를 위해 OAUTH를 사용하여 인증 중에 사용자 자격 증명이 보호되도록합니다. Hybridauth는 이메일이나 사용자 이름에 의존하지 않고 소셜 네트워크에서 제공하는 고유 식별자를 사용하여 사용자 정의 사용자 인증 프로세스를 허용합니다. 이 튜토리얼은 Slim PHP 프레임 워크를 사용하여 실용적인 데모를 제공하며, 환경 설정부터 소셜 네트워크를 통해 사용자 등록, 로그인 및 로그 아웃을 처리하는 완전한 기능이있는 데모 응용 프로그램 작성에 이르기까지 단계를 자세히 설명합니다.

    설치
  • Composer는 Hybridauth를 설치하는 것이 좋습니다. 또한 샘플 응용 프로그램의 기초로 슬림을 사용합니다.
  • Hybridauth
  • 가있는 소셜 로그인
    Hybridauth를 사용하려면 및 (Hybridauth endpoint 파일)를 프로젝트 루트 폴더에 복사하십시오.
  • 파일의 이름을
  • 로 바꾸십시오
는 데모 애플리케이션 로직의 슬림 프레임 워크에서 사용되므로.

앱 (예 : Facebook, Twitter 앱) 자격 증명으로 파일을 채우십시오. 예를 들어, 사용자가 Facebook, Google 및 Twitter를 통해 웹 사이트에 로그인하려면 프로필이 다음과 같습니다. 내 응용 프로그램 URL은 입니다.

참고 : 매개 변수는이 경우 를 가리켜 야합니다.

<code>{
    "require": {
        "slim/slim": "2.*",
        "hybridauth/hybridauth": "2.3.0"
    }
}</code>
자세한 내용은 Hybridauth 구성 문서를 참조하십시오.

다음으로 벤더 자동 로더를로드하고 클래스를 인스턴스화하십시오.

주어진 공급자를 사용하여

메소드를 사용하여 사용자를 인증하십시오. /vendor/hybridauth/hybridauth/hybridauth Facebook의 경우 : config.php 트위터의 경우 : index.php Google의 경우 :

로 전달 된 매개 변수는 파일의 제공자 배열 키와 일치해야합니다. index.php인증 후

메소드를 사용하여 사용자의 프로필 데이터를 검색하십시오. getUserProfile()

변수는 반환 된 사용자 프로필 데이터를 포함하는 객체입니다.
<code>{
    "require": {
        "slim/slim": "2.*",
        "hybridauth/hybridauth": "2.3.0"
    }
}</code>
더 많은 사회 제공자 github와 같은 더 많은 공급자를 추가하려면 파일을 에서 응용 프로그램의 위치로 복사하십시오 (이 경우 공급자 디렉토리). 제공자 래퍼를 사용하여 파일을로드합니다. 여기서

는 github 파일의 경로이고 $user_profile는 PHP 클래스의 이름입니다.

hybridauth 방법을 사용하여 아래와 같이 Github를 사용하여 사용자를 인증하십시오.

소셜 로그인 구현 GitHub.php 일반적으로 로그인 및 등록 시스템이있는 모든 웹 사이트는 사용자의 이메일 주소 또는 사용자 이름을 사용하여 계정을 식별하고 로그인합니다. 소셜 로그인을 구현하려는 경우 인증을 위해 사용자의 사용자 이름이나 이메일을 사용하지 않는 것이 좋습니다. vendor/hybridauth/hybridauth/additional-providers/hybridauth-github/Providers 이 관행에 반대하는 이유 중 하나는 예를 들어 트위터가 인증 된 사용자의 이메일 주소를 반환하지 않기 때문입니다. 즉, 반환 된 프로필 데이터에는 사용자의 이메일이 포함되어 있지 않습니다. path 대부분은 Facebook, Twitter, Google, LinkedIn 및 Github와 같은 소셜 제공 업체가 승인 후 고유 한 사용자 ID 번호를 반환합니다. class 사용자의 이메일을 사용하여 사용자의 계정에 로그인하지 않지만 아래와 같이 소셜 제공자가 반환 한 식별자를 사용하십시오. 사용자가 계정이없는 경우 사용자 계정을 만듭니다 계정 웹 사이트로 이동합니다.

<code>return 
    [
        "base_url"   => "http://slim.local/",
        "providers"  => [
            "Google"   => [
                "enabled" => true,
                "keys"    => [ "id" => "", "secret" => "" ],
            ],
            "Facebook" => [
                "enabled"        => true,
                "keys"           => [ "id" => "", "secret" => "" ],
                "trustForwarded" => false
            ],
            "Twitter"  => [
                "enabled" => true,
                "keys"    => [ "key" => "", "secret" => "" ]
            ],
        ],
        "debug_mode" => true,
        "debug_file" => "bug.txt",
    ];</code>
데모 응용 프로그램 쓰기

우리는 Slim PHP 프레임 워크를 사용하여 간단한 웹 애플리케이션을 구축하여 Hybridauth를 사용하여 소셜 로그인을 구현하는 방법에 대한 실제 예를 보여줍니다. authenticate() 나는 당신이 Hybridauth 및 Slim 프레임 워크가 설치되었다고 가정합니다. 그렇지 않으면 위의 설치 안내서를 참조하십시오.

<code>require 'vendor/autoload.php';
$hybridauth = new Hybrid_Auth( 'config.php' );</code>
응용 구조

이것은 데이터베이스 테이블의 SQL입니다. 응용 프로그램 모델 쓰기 응용 프로그램 모델의 모든 코드는 SRC 폴더의 app_model.php 파일에 배치해야합니다.

파일 네임 스페이스는 모델이며 클래스 정의 및 생성자가 뒤 따릅니다.

메소드는 데이터베이스에 이미 식별자 (사용자 식별 번호)가 존재하는 경우 true를 반환합니다. 그렇지 않으면 False를 반환합니다.

메소드 사용자 프로필 데이터를 데이터베이스에 삽입하십시오.

메소드는 호출 할 때 생성 된 사용자 세션을 Hybridauth 세션에 추가합니다 (제공자가 사용자를 성공적으로 승인 한 후 생성).

로그 아웃 링크를 클릭 할 때 사용자 세션을 삭제하거나 파괴하는 메소드. 마지막으로 Getter 메소드는 사용자 이름, 이메일 및 Avatar URL을 반환합니다.

<code>{
    "require": {
        "slim/slim": "2.*",
        "hybridauth/hybridauth": "2.3.0"
    }
}</code>
Composer.json 파일에 다음 코드를 추가하여 모델 클래스의 PSR-4 자동 로더를 등록하십시오.

<code>return 
    [
        "base_url"   => "http://slim.local/",
        "providers"  => [
            "Google"   => [
                "enabled" => true,
                "keys"    => [ "id" => "", "secret" => "" ],
            ],
            "Facebook" => [
                "enabled"        => true,
                "keys"           => [ "id" => "", "secret" => "" ],
                "trustForwarded" => false
            ],
            "Twitter"  => [
                "enabled" => true,
                "keys"    => [ "key" => "", "secret" => "" ]
            ],
        ],
        "debug_mode" => true,
        "debug_file" => "bug.txt",
    ];</code>

파일을 재생하려면 run . composer dump-autoload 응용 프로그램 논리 응용 프로그램에 작곡가로드 파일은 파일을 자동으로로드하고 슬림을 인스턴스화합니다. vendor/autoload.php

모든 템플릿 파일을 저장하기 위해 템플릿이라는 디렉토리를 작성한 다음 다음과 같이 슬림으로 등록하거나 구성하십시오.

호출 될 때 데이터베이스 연결 인스턴스를 반환하는 슬림 한 데이터베이스 싱글 톤 리소스를 만듭니다.

Hybridauth 인스턴스를 반환하는 또 다른 싱글 톤 리소스도 생성됩니다. index.php

데이터베이스 연결을 매개 변수로 전달하여 응용 프로그램 모델 클래스를 인스턴스화합니다.
<code>require 'vendor/autoload.php';
$hybridauth = new Hybrid_Auth( 'config.php' );</code>

다음 함수는 경로에 매개 변수로 추가되면 사용자가 로그인하지 않으면 로그인 페이지로 리디렉션됩니다.
<code>$adapter = $hybridauth->authenticate( "Facebook" );</code>

로그인 된 사용자를 앱의 홈페이지 또는 인덱스 페이지에 액세스 할 때 로그인 페이지로 리디렉션합니다.

<code>$adapter = $hybridauth->authenticate( "Twitter" );</code>
다음은 소셜 로그인 링크에 대한 라우팅 정의입니다. 즉, 링크

를 클릭하면 Hybridauth는 사용자를 Facebook로 리디렉션하여 승인합니다. Twitter , Google 및 기타 모든 지원 제공 업체도 마찬가지입니다.

<code>$adapter = $hybridauth->authenticate( "Google" );</code>

호출
<code>$user_profile = $adapter->getUserProfile();</code>
Hybridauth 방법을 호출하면 사용자를 주어진 소셜 제공자에게 리디렉션합니다.

성공적인 승인 후 변수는 사용자 프로필 데이터를 채 웁니다. authenticate

메소드를 호출하여 사용자 식별자가 데이터베이스에 존재하는지 확인하십시오. 사실이라면 사용자는 웹 사이트에 로그인합니다. 그렇지 않으면 사용자를 위해 계정이 생성되고 사용자가 로그인됩니다.
<code>"Github"   => [
    "enabled" => true,
    "keys"    => [
        "id"     => "",
        "secret" => ""
    ],
    "wrapper" => [ "path" => "providers/GitHub.php", "class" => "Hybrid_Providers_GitHub" ]
]</code>
이것은 경로를 로그 아웃하는 코드입니다. <p> </p> <pre class="brush:php;toolbar:false">&lt;code&gt;$adapter = $hybridauth-&gt;authenticate( &quot;Github&quot; );&lt;/code&gt;</pre> 우리가 모델 클래스에서 논의한 <p> 메소드는 사용자 세션을 파괴하고 사용자의 연결 제공 업체에서 로그 아웃하도록 요청됩니다. <code>http://slim.local/login/facebook 로그인 한 후 사용자가 환영받은 환영 페이지의 경로 : http://slim.local/login/twitter 마지막으로 슬림 한 응용 프로그램을 실행하십시오. http://slim.local/login/google

전체 소스 코드는 응용 프로그램의 GitHub 저장소를 참조하십시오.
<code>|-scr/
|----App_Model.php
|-templates/
|----login.php
|----welcome.php
|-vendor/
|-composer.json
|-config.php
|-hybrid.php
|-index.php
|-.htaccess</code>
결론

authenticate() 이 기사에서는 강력하고 강력한 Hybridauth PHP 라이브러리를 사용하여 소셜 로그인 기능을 웹 사이트와 통합하는 방법을 배웠습니다.

질문이나 기부금이 있으시면 의견에 알려주십시오.

PHP 및 Hybridauth와 함께 소셜 로그인을위한 FAQ (FAQ) 및 Hybridauth $user_profile


Hybridauth 란 무엇이며 소셜 로그인을 위해 PHP에 어떻게 사용됩니까?

Hybridauth는 인기있는 오픈 소스 소셜 로그인 PHP 라이브러리입니다. 이를 통해 웹 개발자는 소셜 미디어 계정을 통해 사용자를 쉽게 인증 할 수있는 방법을 제공하여 소셜 애플리케이션을 쉽게 구축 할 수 있습니다. Hybridauth는 응용 프로그램과 다양한 소셜 API와 Facebook, Twitter 및 Google과 같은 신원 제공 업체 간의 추상 API 역할을합니다. PHP 응용 프로그램의 기존 로그인 시스템과 통합하고 소셜 로그인 기능을 추가하여 작동합니다.

내 PHP 응용 프로그램에서 Hybridauth를 설치하고 구성하는 방법은 무엇입니까?

Hybridauth는 작곡가 (PHP의 종속성 관리 도구)를 통해 설치할 수 있습니다. 설치 후 사용하려는 공급자 (소셜 네트워크)를 설정하여 구성해야합니다. 각 공급자는 각 소셜 네트워크의 개발자 플랫폼에서 응용 프로그램을 만들어 키 및 키와 같은 고유 한 매개 변수 세트가 필요합니다.

소셜 로그인을위한 Hybridauth의 보안 수준은 얼마입니까?

Hybridauth는 Open Access Delegate 표준 인 Oauth를 사용하기 때문에 매우 안전합니다. OAUTH는 안전한 지정된 액세스를 제공합니다. 즉, 사용자는 웹 사이트에 암호를 제공하지 않고 다른 웹 사이트에 대한 정보에 액세스 할 수있는 권한을 부여 할 수 있습니다. 이것은 Hybridauth를 소셜 로그인을위한 안전한 옵션으로 만듭니다.

여러 웹 사이트에서 소셜 로그인에 Hybridauth를 사용할 수 있습니까?


예, Hybridauth는 여러 웹 사이트에서 사용할 수 있습니다. 각 웹 사이트에 올바른 콜백 URL 구성 라이브러리를 사용하면됩니다. 따라서 여러 웹 사이트를 관리하는 개발자에게 유연한 솔루션이됩니다.

Hybridauth의 오류를 처리하는 방법은 무엇입니까?

Hybridauth에는 내장 오류 처리 시스템이 있습니다. 오류가 발생하면 응용 프로그램의 오류 처리 정책에 따라 잡고 처리 할 수있는 예외가 발생합니다. 이로 인해 디버깅 및 수정 문제가 더 쉬워집니다.

Hybridauth의 소셜 로그인 버튼의 모양과 스타일을 사용자 정의 할 수 있습니까?

예, 소셜 로그인 버튼의 모양과 스타일을 사용자 정의 할 수 있습니다. Hybridauth는 소셜 로그인 기능을 제공하지만 버튼의 설계 및 레이아웃은 전적으로 귀하에게 달려 있습니다.

내 PHP 응용 프로그램에서 Hybridauth 라이브러리를 업데이트하는 방법은 무엇입니까?


Hybridauth 업데이트는 Composer에서 명령을 실행하는 것만 큼 쉽습니다. 이를 통해 항상 모든 보안 패치 및 업데이트가 포함 된 최신 버전을 갖추게됩니다.

다른 PHP 프레임 워크와 함께 Hybridauth를 사용할 수 있습니까?


예, Hybridauth는 프레임 워크가 아니며 PHP 프레임 워크와 함께 사용할 수 있습니다. 이를 통해 다른 PHP 프레임 워크를 사용하는 개발자에게는 다양한 선택이됩니다.

지역 개발 환경에서 Hybridauth의 소셜 로그인을 테스트하는 방법은 무엇입니까?

소셜 네트워크에는 유효한 콜백 URL이 필요하기 때문에 소셜 로그인 테스트 로컬 로그인 테스트가 까다로울 수 있습니다. 그러나 NGROK와 같은 도구를 사용하여 로컬 서버를 인터넷에 노출시키고 해당 URL을 콜백 URL로 사용할 수 있습니다.

Hybridauth를 사용하여 이메일 및 비밀번호와 같은 비 사회적 계정으로 사용자를 인증 할 수 있습니까?


아니요, Hybridauth는 소셜 로그인을 위해 설계되었습니다. 기존 이메일 및 비밀번호 인증을 위해서는 다른 PHP 라이브러리를 사용하거나 자체 인증 시스템을 구축해야합니다.

출력은 원래 이미지 형식 및 배치를 유지하고 원래의 의미를 보존하는 동안 흐름과 가독성을 향상시키기 위해 재구성되었습니다

위 내용은 Hybridauth와 PHP의 소셜 로그의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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