>PHP 프레임워크 >Laravel >Laravel 개발: Laravel Socialite 및 Github를 사용하여 타사 로그인을 구현하는 방법은 무엇입니까?

Laravel 개발: Laravel Socialite 및 Github를 사용하여 타사 로그인을 구현하는 방법은 무엇입니까?

PHPz
PHPz원래의
2023-06-13 19:09:00894검색

최신 웹 애플리케이션에서는 사용자가 소셜 미디어 계정을 사용하여 웹 사이트에 빠르고 쉽게 로그인할 수 있는 것이 추세가 되었습니다. 자체 인증 시스템을 구현하는 것도 가능하지만 타사 인증 시스템을 사용하면 애플리케이션이 더 유연하고 사용하기 쉬워집니다.

이 글에서는 Laravel Socialite와 Github를 사용하여 타사 로그인을 구현하는 방법을 살펴보겠습니다. Laravel Socialite는 소셜 미디어 인증을 Laravel 애플리케이션에 쉽게 통합할 수 있게 해주는 Laravel 확장입니다. Github는 타사 인증 서비스도 제공하는 인기 있는 Git 저장소 호스팅 서비스입니다.

시작하기 전에 Laravel과 Composer가 설치되어 있는지 확인하세요.

  1. Laravel Socialite 설치

먼저 Laravel Socialite를 설치해야 합니다. 터미널에서 다음 명령을 실행하세요:

composer require laravel/socialite

이 명령은 Laravel Socialite 플러그인을 다운로드하고 설치합니다.

  1. Github 앱 만들기

Github에 로그인하기 전에 Github의 타사 인증 서비스를 사용할 수 있도록 먼저 Github 앱을 만들어야 합니다.

이 링크를 방문하여 Github 계정에 로그인하세요: https://github.com/settings/developers

그런 다음 "새 OAuth 앱" 버튼을 클릭하고 양식을 작성하세요. 홈페이지 URL에는 홈페이지 URL을, 승인 콜백 URL에는 콜백 URL을 입력하세요. 이 단계의 목적은 애플리케이션을 Github에 연결하는 것입니다.

  1. Laravel Socialite 구성

다음으로 방금 만든 Github 앱과 통신할 수 있도록 Laravel Socialite를 구성해야 합니다.

3.1 Github 드라이버 추가

config/services.php 파일을 열고 다음 구성을 추가하세요. config/services.php 文件并添加以下配置:

'github' => [    
   'client_id' => env('GITHUB_CLIENT_ID'),    
   'client_secret' => env('GITHUB_CLIENT_SECRET'),    
   'redirect' => 'http://your-domain.com/auth/github/callback',    
],

这将创建一个名为“github”的驱动程序,并配置客户端 ID、客户端密钥和回调 URL。请替换“your-domain.com”为您的主页 URL。

3.2 更新 .env 文件

打开 .env 文件并添加以下配置:

GITHUB_CLIENT_ID=your-client-id    
GITHUB_CLIENT_SECRET=your-client-secret    
GITHUB_REDIRECT_URI=http://your-domain.com/auth/github/callback

请替换 your-client-idyour-client-secretyour-domain.com 为您的 Github App 的客户端 ID、客户端密钥和主页 URL。

  1. 创建 Github 登录路由和控制器

现在,我们可以开始实现我们的 Github 登录了。首先,我们需要创建一个 Github 登录路由:

Route::get('auth/github', '[GithubController@login');
Route::get('auth/github/callback', '[GithubController@callback']);

然后,我们需要创建 GithubController 控制器类,并在其中实现 logincallback 方法:

namespace AppHttpControllers;

use IlluminateHttpRequest;
use LaravelSocialiteFacadesSocialite;

class GithubController extends Controller
{
    public function login()
    {
        return Socialite::driver('github')->redirect();
    }

    public function callback(Request $request)
    {
        $user = Socialite::driver('github')->user();
        
        // do something with user data
    }
}

login 方法中,我们使用 Socialite facade 调用 driver 方法指定使用 Github 驱动程序,并使用 redirect 方法生成一个跳转到 Github 登录页面的 URL。

callback 方法中,我们先使用 Socialite facade 调用 driver 方法获取 Github 用户信息,然后可以进行一些逻辑处理。例如,如果该用户是首次登录,可以将用户添加到用户表中,或者将其与已有用户进行关联。

5.测试 Github 登录

现在,我们已经完成了所有的配置和代码,可以测试我们的 Github 登录是否正常工作了。

在浏览器中输入该地址:http://your-domain.com/auth/github。这将转到 Github 登录页面。在页面上输入您的 Github 帐户信息,然后单击“登录”。如果一切正常,您将被重定向到我们在第 3 步中配置的回调 URL。

callback

return view('welcome');

이렇게 하면 "github"라는 드라이버가 생성되고 클라이언트 ID, 클라이언트 비밀번호 및 콜백 URL. "your-domain.com"을 홈페이지 URL로 바꾸세요.

3.2 .env 파일 업데이트

.env 파일을 열고 다음 구성을 추가하세요.

rrreee

your-client-id, your-를 교체하세요. client-secretyour-domain.com은 Github 앱의 클라이언트 ID, 클라이언트 비밀 및 홈페이지 URL입니다.

    Github 로그인 경로 및 컨트롤러 만들기🎜🎜🎜이제 Github 로그인 구현을 시작할 수 있습니다. 먼저 Github 로그인 경로를 만들어야 합니다: 🎜rrreee🎜그런 다음 GithubController 컨트롤러 클래스를 만들고 logincallback을 구현해야 합니다. 방법: 🎜rrreee🎜login 방법에서는 Socialite 파사드를 사용하여 Github 드라이버를 지정하고 driver 방법을 호출합니다. > 리디렉션 메소드는 Github 로그인 페이지로 이동하는 URL을 생성합니다. 🎜🎜 콜백 메소드에서는 먼저 Socialite 파사드를 사용하여 driver 메소드를 호출하여 Github 사용자 정보를 얻은 다음 몇 가지 작업을 수행합니다. 논리적 처리. 예를 들어, 사용자가 처음으로 로그인하는 경우 해당 사용자를 사용자 테이블에 추가하거나 기존 사용자와 연결할 수 있습니다. 🎜🎜5. Github 로그인 테스트🎜🎜이제 모든 구성과 코드가 완료되었으므로 Github 로그인이 제대로 작동하는지 테스트할 수 있습니다. 🎜🎜브라우저에 http://your-domain.com/auth/github 주소를 입력하세요. 그러면 Github 로그인 페이지로 이동됩니다. 페이지에 Github 계정 정보를 입력하고 로그인을 클릭하세요. 모든 것이 정상이면 3단계에서 구성한 콜백 URL로 리디렉션됩니다. 🎜🎜콜백 메서드 끝에 다음 코드를 추가하세요. 🎜rrreee🎜이렇게 하면 로그인 성공 후 사용자가 환영 페이지로 리디렉션됩니다. 🎜🎜이제 애플리케이션이 Github 사용자 인증을 기반으로 로그인할 수 있는지 테스트할 수 있습니다. 🎜🎜결론🎜🎜 이번 글에서는 Laravel Socialite와 Github를 활용하여 3rd Party 인증을 구현하는 방법을 소개했습니다. 오늘날의 사용자는 빠르게 등록하고 로그인하기를 원한다는 점을 고려하면 이 접근 방식을 통해 애플리케이션을 더욱 사용자 친화적으로 만들고 애플리케이션을 더욱 유연하게 만들 수 있습니다. 🎜

위 내용은 Laravel 개발: Laravel Socialite 및 Github를 사용하여 타사 로그인을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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