최신 웹 애플리케이션에서는 사용자가 소셜 미디어 계정을 사용하여 웹 사이트에 빠르고 쉽게 로그인할 수 있는 것이 추세가 되었습니다. 자체 인증 시스템을 구현하는 것도 가능하지만 타사 인증 시스템을 사용하면 애플리케이션이 더 유연하고 사용하기 쉬워집니다.
이 글에서는 Laravel Socialite와 Github를 사용하여 타사 로그인을 구현하는 방법을 살펴보겠습니다. Laravel Socialite는 소셜 미디어 인증을 Laravel 애플리케이션에 쉽게 통합할 수 있게 해주는 Laravel 확장입니다. Github는 타사 인증 서비스도 제공하는 인기 있는 Git 저장소 호스팅 서비스입니다.
시작하기 전에 Laravel과 Composer가 설치되어 있는지 확인하세요.
먼저 Laravel Socialite를 설치해야 합니다. 터미널에서 다음 명령을 실행하세요:
composer require laravel/socialite
이 명령은 Laravel Socialite 플러그인을 다운로드하고 설치합니다.
Github에 로그인하기 전에 Github의 타사 인증 서비스를 사용할 수 있도록 먼저 Github 앱을 만들어야 합니다.
이 링크를 방문하여 Github 계정에 로그인하세요: https://github.com/settings/developers
그런 다음 "새 OAuth 앱" 버튼을 클릭하고 양식을 작성하세요. 홈페이지 URL에는 홈페이지 URL을, 승인 콜백 URL에는 콜백 URL을 입력하세요. 이 단계의 목적은 애플리케이션을 Github에 연결하는 것입니다.
다음으로 방금 만든 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-id
,your-client-secret
和 your-domain.com
为您的 Github App 的客户端 ID、客户端密钥和主页 URL。
现在,我们可以开始实现我们的 Github 登录了。首先,我们需要创建一个 Github 登录路由:
Route::get('auth/github', '[GithubController@login'); Route::get('auth/github/callback', '[GithubController@callback']);
然后,我们需要创建 GithubController
控制器类,并在其中实现 login
和 callback
方法:
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-secret
및 your-domain.com
은 Github 앱의 클라이언트 ID, 클라이언트 비밀 및 홈페이지 URL입니다.
GithubController
컨트롤러 클래스를 만들고 login
및 callback
을 구현해야 합니다. 방법: 🎜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 중국어 웹사이트의 기타 관련 기사를 참조하세요!