최근 몇 년간 인터넷 기술이 지속적으로 발전함에 따라 사람들은 웹사이트나 애플리케이션의 보안 및 사용자 경험에 대한 요구 사항이 점점 더 높아지고 있습니다. 사용자 등록 및 로그인을 용이하게 하기 위해 제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
형식으로 저장되는 GitHub 서비스 제공자로부터 사용자 정보를 얻습니다. > 변수 반환. 🎜🎜$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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Laravel Full-Stack Development에서 API 및 프론트 엔드 로직을 관리하는 효과적인 방법은 다음과 같습니다. 1) 편안한 컨트롤러 및 리소스 라우팅 관리 API 사용; 2) 블레이드 템플릿 및 vue.js 또는 반응을 통한 프론트 엔드 로직 처리; 3) API 버전화 및 페이징을 통한 성능 최적화; 4) 유지 관리 및 확장 성을 보장하기 위해 백엔드 및 프론트 엔드 논리의 분리를 유지합니다.

TotackleculturalIntricaciesindipributedTeams, Fosteranenvernmentcelebratingdifferences, bemindfulofcommunication, andusetoolsforclarity.1) 구현 culturalexChangessessionStosharestoriesandtraditions.2) AdvernCommunicationMethodStosuitculturalPreference

toAssesstheeffectiveIneSofRemoteCommunication, FocusOn : 1) indagementMetricsLikemEsageFrequencyAndResponSetime, 2) SentimentAnalySistoGaUgeEmoptionalTone, 3) MeetingEfficivenitesThrougAntSendAndActionItems, and4) NetworkAnalysistOndStandCommiticaticPA

toprotectsensitivedataindipributeedteams, ubstractAmulti-facetedeproach : 1) 사용 엔드-endencryptionforecurecommunication, 2) ApplyRole 기반 AccessControl (RBAC) TomanagePermissions, 3) 암호화 관리 관리 협의 및 4) POSPOROCITION-CONNOCONCONCITIONC

아니요, emailisnottheBosteBosteCollaborationToday.Modern PlatformLack, Microsoft Teams, Zoom, Asana 및 TrellofferReal Time Communication, ProjectFeatHancteAmworkandefficiency.

협업 문서 편집은 분산 팀이 워크 플로를 최적화 할 수있는 효과적인 도구입니다. 실시간 협업 및 피드백 루프를 통해 커뮤니케이션 및 프로젝트 진행 상황을 향상 시키며 일반적인 도구에는 Google Docs, Microsoft 팀 및 개념이 포함됩니다. 버전 제어 및 학습 곡선과 같은 도전에주의하십시오.

thepreviousversionoflaravelissupportedwithbugfixesforsforsforsixtsandsandsecurityfixesfixesfixesporoneyearafteranewverversion'srelease. thissupporttimelineiscrucialforplanningupgrades, projectsability, andleveragingnewfeaturesandsecuritenhemenhemen

laravelcanbeefefecticallySticallySticallySticallySticallySticallySticallyBotherBackendDevelopment.1) 백엔드 : utilizelaravel'seloquentormforsimplifiedDatabaseIntercations.2) Frontend : LeverageBladetemPlatesforcleanHtmlandintegratevue.jsfordynamicspas, ensuringseamless-frontendinteg


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

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

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

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