Laravel을 사용하여 타사 로그인 기능을 구현하는 방법
최근 몇 년간 인터넷 기술이 지속적으로 발전함에 따라 사람들은 웹사이트나 애플리케이션의 보안 및 사용자 경험에 대한 요구 사항이 점점 더 높아지고 있습니다. 사용자 등록 및 로그인을 용이하게 하기 위해 제3자 계정 로그인은 웹사이트 및 애플리케이션에서 일반적으로 사용되는 기능 중 하나가 되었습니다. 널리 사용되는 PHP 프레임워크인 Laravel은 편리한 소셜 로그인 인증 기능을 제공하므로 타사 로그인 기능을 구현하는 것이 특히 편리합니다. 이 기사에서는 Laravel을 사용하여 타사 로그인 기능을 구현하는 방법을 소개하고 독자의 참조를 위한 일부 구현 코드를 제공합니다.
1. 서비스 제공자 정보 구성
Laravel에서는 소셜 로그인 인증 패키지 socialite
를 사용하여 타사 로그인 기능을 구현할 수 있습니다. 소셜라이트
는 Facebook, Google, Twitter, WeChat 등을 포함한 다양한 공인 서비스 제공업체를 지원합니다. 따라서 socialite
를 사용하여 타사 로그인 기능을 구현하기 전에 서비스 제공자 정보를 구성해야 합니다. socialite
来实现第三方登录功能。而socialite
支持的授权服务提供商多种多样,包括Facebook、Google、Twitter、WeChat等。因此,在使用socialite
实现第三方登录功能之前,我们需要配置服务商信息。
以GitHub为例,通过创建并授权一个OAuth应用程序,我们可以获取到客户端ID和客户端密钥两个信息。具体的获取方式如下:
- 访问GitHub的网站,并登录账户。
- 进入GitHub的设置页面,选择"Developer settings"选项卡,点击"OAuth Apps",然后选择"New OAuth App"。
- 填写应用程序的详细信息,包括应用名称、应用主页URL、授权回调URL等。
- 提交并创建应用程序。创建成功后,可以在GitHub页面中找到该应用程序的客户端ID和客户端密钥等信息。
有了这些信息之后,我们就可以创建一个名为/config/services.php
的Laravel配置文件,并在其中添加以下内容:
'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'redirect' => 'http://localhost:8000/login/github/callback', ],
其中,github
是我们要使用的服务提供商的名称,client_id
和client_secret
是我们在申请OAuth应用程序时获取到的客户端ID和客户端密钥,redirect
是OAuth回调URL,它是我们在创建应用程序时填写的授权回调URL。这里我们设置为localhost:8000/login/github/callback,后面我们将会在路由文件中创建这个路由。
二、创建路由
接下来,我们需要在Laravel应用程序的路由文件中创建路由,实现通过GitHub登录的功能。在这里,我们可以使用Laravel的Route
类来创建路由。
第一步,我们需要创建一个授权跳转路由,由它负责将用户跳转至GitHub登录页面。在路由文件中添加以下代码:
Route::get('login/github', function () { return Socialite::driver('github')->redirect(); });
其中,Socialite::driver('github')
调用socialite
授权包的driver
方法,获取到GitHub服务提供商的实例。而redirect
方法则实现了OAuth授权跳转,将用户重定向到GitHub的认证授权页面上。
第二步,我们创建一个授权回调路由,由它负责获取GitHub服务提供商返回的用户信息,并进行处理。在路由文件中添加以下代码:
Route::get('login/github/callback', function () { $user = Socialite::driver('github')->user(); // 处理用户信息 });
其中,Socialite::driver('github')
调用socialite
授权包的driver
方法,获取到GitHub服务提供商的实例。而user
方法则实现了OAuth授权获取用户信息的过程,它会从GitHub服务提供商获取到用户的信息,该信息将以$user
变量形式被返回。
在获取到$user
变量之后,我们便可以对用户信息进行处理了。由于每个第三方服务提供商返回的用户信息格式略有不同,因此这里就不做详细展开了。
三、创建公用方法
为了方便管理和使用,我们可以在app/Http/Controllers/Auth/LoginController.php
控制器中创建GitHub
方法,供其他方法调用。
在该方法中,我们首先需要使用Socialite::driver('github')->redirect()
方法将用户重定向到GitHub登录页面上。而在获取用户信息的回调过程中,我们可以在GitHubCallback
方法中对用户信息进行处理。
下面是一个基本的示例代码:
<?php namespace AppHttpControllersAuth; use AppHttpControllersController; use Socialite; class LoginController extends Controller { /** * 重定向到GitHub登录页面 * * @return Response */ public function GitHub() { return Socialite::driver('github')->redirect(); } /** * 从GitHub获取用户信息 * * @return Response */ public function GitHubCallback() { $user = Socialite::driver('github')->user(); dd($user); } }
四、使用扩展包
如果你觉得上述方法过程繁琐,可以使用社交化登录授权扩展包laravel/socialite
,这个扩展包已经对各大服务提供商进行了封装,并提供了相对应的命令行工具来构造授权服务提供商。
- 安装
laravel/socialite
在终端中使用composer安装laravel/socialite
扩展包:
composer require laravel/socialite
- 配置服务商信息
在Laravel的配置文件config/services.php
中,添加需要使用的服务商信息,下面以GitHub为例:
'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'redirect' => '/auth/github/callback', ],
- 创建授权路由
在routes/web.php
- GitHub 웹사이트를 방문하여 계정에 로그인하세요.
- GitHub 설정 페이지에 들어가서 "개발자 설정" 탭을 선택하고 "OAuth 앱"을 클릭한 다음 "새 OAuth 앱"을 선택하세요.
- 애플리케이션 이름, 애플리케이션 홈페이지 URL, 인증 콜백 URL 등을 포함하여 애플리케이션에 대한 자세한 정보를 입력합니다.
- 신청서를 제출하고 작성하세요. 성공적으로 생성되면 애플리케이션의 클라이언트 ID, 클라이언트 키 등의 정보를 GitHub 페이지에서 확인할 수 있습니다.
/config/services.php
라는 Laravel 구성 파일을 만들고 여기에 다음 콘텐츠를 추가할 수 있습니다. 🎜Route::get('/auth/github', 'AuthLoginController@GitHub');
github
는 우리가 사용하려는 서비스 제공자의 이름이고, client_id
와 client_secret
는 OAuth 애플리케이션을 신청할 때 얻은 고객입니다. 클라이언트 ID와 클라이언트 비밀번호, redirect
는 OAuth 콜백 URL로, 애플리케이션을 생성할 때 입력한 인증 콜백 URL입니다. 여기서는 이를 localhost:8000/login/github/callback으로 설정합니다. 나중에 라우팅 파일에 이 경로를 생성할 것입니다. 🎜🎜2. 경로 생성🎜🎜다음으로 GitHub를 통한 로그인 기능을 구현하기 위해 Laravel 애플리케이션의 라우팅 파일에 경로를 생성해야 합니다. 여기서는 Laravel의 Route
클래스를 사용하여 경로를 생성할 수 있습니다. 🎜🎜첫 번째 단계에서는 사용자를 GitHub 로그인 페이지로 리디렉션하는 인증 리디렉션 경로를 만들어야 합니다. 라우팅 파일에 다음 코드를 추가하세요: 🎜Route::get('/auth/github/callback', 'AuthLoginController@GitHubCallback');
Socialite::driver('github')
는 socialite
의 driver
메서드를 호출합니다. code> 인증 패키지를 통해 GitHub 서비스 공급자의 인스턴스를 가져옵니다. redirect
메소드는 OAuth 인증 점프를 구현하고 사용자를 GitHub의 인증 및 인증 페이지로 리디렉션합니다. 🎜🎜두 번째 단계에서는 GitHub 서비스 공급자가 반환한 사용자 정보를 가져와 처리하는 권한 부여 콜백 경로를 만듭니다. 라우팅 파일에 다음 코드를 추가하세요: 🎜use Socialite; class LoginController extends Controller { public function GitHub() { return Socialite::driver('github')->redirect(); } public function GitHubCallback() { $user = Socialite::driver('github')->user(); dd($user); } }
Socialite::driver('github')
는 socialite
의 driver
메서드를 호출합니다. code> 인증 패키지를 통해 GitHub 서비스 공급자의 인스턴스를 가져옵니다. user
메소드는 OAuth 인증을 통해 사용자 정보를 얻는 프로세스를 구현하며, 이는 $user</code 형식으로 저장되는 GitHub 서비스 제공자로부터 사용자 정보를 얻습니다. > 변수 반환. 🎜🎜<code>$user
변수를 얻은 후 사용자 정보를 처리할 수 있습니다. 제3자 서비스 제공업체마다 반환하는 사용자 정보의 형식이 조금씩 다르기 때문에 여기서는 자세히 다루지 않겠습니다. 🎜🎜3. 공개 메소드 생성🎜🎜관리 및 사용을 용이하게 하기 위해 app/Http/Controllers/Auth/LoginController.php
에서 GitHub
메소드를 생성할 수 있습니다. 컨트롤러를 사용하여 다른 메서드를 호출합니다. 🎜🎜이 방법에서는 먼저 Socialite::driver('github')->redirect()
메서드를 사용하여 사용자를 GitHub 로그인 페이지로 리디렉션해야 합니다. 사용자 정보를 얻는 콜백 과정에서 GitHubCallback
메서드에서 사용자 정보를 처리할 수 있습니다. 🎜🎜다음은 기본 샘플 코드입니다. 🎜rrreee🎜 4. 확장 패키지 사용하기 🎜🎜위 방법이 번거롭다고 생각된다면 소셜 로그인 인증 확장 패키지 laravel/socialite
를 이용하시면 됩니다, 이 확장 패키지에는 주요 서비스 제공자가 캡슐화되었으며 해당 명령줄 도구가 제공되어 인증된 서비스 제공자를 구성할 수 있습니다. 🎜laravel/socialite
설치
laravel/socialite
확장 패키지를 설치하세요: 🎜rrreee - 서비스 제공자 정보 구성
config/services.php
에서 사용해야 하는 서비스 제공자 정보를 추가하세요. , 다음과 같이 GitHub를 예로 들어 보겠습니다. 🎜rrreee- 인증 경로 만들기
routes/web.php
라우팅 파일에서 , 인증된 인증 경로를 생성하세요: 🎜Route::get('/auth/github', 'AuthLoginController@GitHub');
- 创建回调路由
在routes/web.php
路由文件中,创建一个授权回调路由:
Route::get('/auth/github/callback', 'AuthLoginController@GitHubCallback');
- 创建控制器
在app/Http/Controllers/Auth
目录下,创建一个名为LoginController.php
的控制器。控制器中添加方法GitHub
和GitHubCallback
实现授权和回调过程,具体代码如下:
use Socialite; class LoginController extends Controller { public function GitHub() { return Socialite::driver('github')->redirect(); } public function GitHubCallback() { $user = Socialite::driver('github')->user(); dd($user); } }
至此,我们已经成功使用laravel/socialite
扩展包实现了第三方登录的功能。
总结:
本文介绍了如何使用Laravel框架的社交化登录授权包socialite
,在实现第三方登录功能方面变得尤为便利。通过配置服务商信息、创建路由以及使用扩展包等方法,我们可以轻松地实现通过GitHub登录的功能。希望这篇文章能够对各位开发人员有所帮助。
위 내용은 Laravel을 사용하여 타사 로그인 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel 9 및 CodeIgniter 4의 최신 버전은 업데이트된 기능과 개선 사항을 제공합니다. Laravel9은 MVC 아키텍처를 채택하여 데이터베이스 마이그레이션, 인증, 템플릿 엔진 등의 기능을 제공합니다. CodeIgniter4는 HMVC 아키텍처를 사용하여 라우팅, ORM 및 캐싱을 제공합니다. 성능면에서는 Laravel9의 서비스 제공자 기반 디자인 패턴과 CodeIgniter4의 경량 프레임워크가 뛰어난 성능을 제공합니다. 실제 애플리케이션에서 Laravel9은 유연성과 강력한 기능이 필요한 복잡한 프로젝트에 적합한 반면, CodeIgniter4는 빠른 개발 및 소규모 애플리케이션에 적합합니다.

Laravel과 CodeIgniter의 데이터 처리 기능을 비교해 보세요. ORM: Laravel은 클래스-객체 관계형 매핑을 제공하는 EloquentORM을 사용하는 반면, CodeIgniter는 데이터베이스 모델을 PHP 클래스의 하위 클래스로 표현하기 위해 ActiveRecord를 사용합니다. 쿼리 빌더: Laravel에는 유연한 체인 쿼리 API가 있는 반면, CodeIgniter의 쿼리 빌더는 더 간단하고 배열 기반입니다. 데이터 검증: Laravel은 사용자 정의 검증 규칙을 지원하는 Validator 클래스를 제공하는 반면, CodeIgniter는 내장된 검증 기능이 적고 사용자 정의 규칙을 수동으로 코딩해야 합니다. 실제 사례: 사용자 등록 예시에서는 Lar를 보여줍니다.

GateToken(GT) 화폐란 무엇인가요? GT(GateToken)는 GateChain 체인의 기본 자산이자 Gate.io의 공식 플랫폼 통화입니다. GT 코인의 가치는 Gate.io 및 GateChain 생태계의 발전과 밀접한 관련이 있습니다. GateChain이란 무엇입니까? GateChain은 2018년에 탄생했으며 Gate.io가 출시한 차세대 고성능 퍼블릭 체인입니다. GateChain은 사용자의 온체인 자산의 보안을 보호하고 편리한 분산 거래 서비스를 제공하는 데 중점을 두고 있습니다. GateChain의 목표는 기업 수준의 안전하고 효율적인 분산형 디지털 자산 저장, 유통 및 거래 생태계를 구축하는 것입니다. 게이트체인에는 원본이 있습니다.

초보자의 경우 CodeIgniter는 학습 곡선이 더 완만하고 기능이 적지만 기본적인 요구 사항을 충족합니다. Laravel은 더 넓은 기능 세트를 제공하지만 학습 곡선이 약간 더 가파릅니다. 성능면에서는 Laravel과 CodeIgniter 모두 좋은 성능을 보입니다. Laravel은 보다 광범위한 문서와 적극적인 커뮤니티 지원을 제공하는 반면 CodeIgniter는 더 간단하고 가벼우며 강력한 보안 기능을 갖추고 있습니다. 블로그 애플리케이션을 구축하는 실제 사례에서 Laravel의 EloquentORM은 데이터 조작을 단순화하는 반면 CodeIgniter는 더 많은 수동 구성이 필요합니다.

Laravel - Artisan Commands - Laravel 5.7은 새로운 명령을 처리하고 테스트하는 새로운 방법을 제공합니다. 여기에는 장인 명령을 테스트하는 새로운 기능이 포함되어 있으며 데모는 아래에 언급되어 있습니다.

대규모 프로젝트를 위한 프레임워크를 선택할 때 Laravel과 CodeIgniter는 각각 고유한 장점을 가지고 있습니다. Laravel은 엔터프라이즈급 애플리케이션을 위해 설계되었으며 모듈식 디자인, 종속성 주입 및 강력한 기능 세트를 제공합니다. CodeIgniter는 속도와 사용 편의성을 강조하여 중소 규모 프로젝트에 더 적합한 경량 프레임워크입니다. 요구 사항이 복잡하고 사용자 수가 많은 대규모 프로젝트의 경우 Laravel의 성능과 확장성이 더 적합합니다. 간단한 프로젝트나 리소스가 제한된 상황에서는 CodeIgniter의 가볍고 빠른 개발 기능이 더 이상적입니다.

소규모 프로젝트의 경우 Laravel은 강력한 기능과 보안이 필요한 대규모 프로젝트에 적합합니다. CodeIgniter는 가볍고 사용하기 쉬운 매우 작은 프로젝트에 적합합니다.

Laravel의 Blade와 CodeIgniter의 Twig 템플릿 엔진을 비교해 보면 프로젝트 요구 사항과 개인 선호도에 따라 선택하십시오. Blade는 MVC 구문을 기반으로 하므로 좋은 코드 구성과 템플릿 상속을 장려합니다. Twig는 유연한 구문, 강력한 필터, 확장된 지원 및 보안 샌드박스를 제공하는 타사 라이브러리입니다.
