Laavel Socialite로 간단한 소셜 로그인
Laavel Socialite is는 도대체 무엇입니까?
Laravel Socialite
는 소셜 로그인을 위한 패키지입니다.옵션이기 때문에 Laavel을 설치할 때는 포함되지 않지만 Composer
에서 간단하게 설치할 수 있습니다.처음 준비된 드라이버는 다음과 같습니다.
Laavel Socialite 설치
composer.json
다음과 같이 편집합니다.한 줄만 추가합니다.이번Illuminate/Html
에도 설치했습니다.composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "~5.0",
"illuminate/html": "~5.0", // オプションになったので追加
"laravel/socialite": "~2.0" // ここを追加
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"barryvdh/laravel-ide-helper": "~1.0"
},
"autoload": {
"classmap": [
"database",
"tests/TestCase.php"
],
"psr-4": {
"App\\": "app/"
}
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan route:scan",
"php artisan event:scan",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan ide-helper:generate",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "dev"
}
그리고 config/app.php
에 등록Laravel Socialite
과Service Provider
.app.php
<?php
return [
'providers' => [
'Laravel\Socialite\SocialiteServiceProvider', // こいつが大事
'Illuminate\Html\HtmlServiceProvider', // オプションじゃなくてもええんやで…。
],
'aliases' => [
'Socialite' => 'Laravel\Socialite\Facades\Socialite',
],
];
그리고 종착역에서command
$ composer update
됐어요.Giithub에 로그인해 보세요.
그럼 실제로 해 보세요.
애플리케이션 등록
우선GiitHub 설정에서 Application으로 마이그레이션 Register New Application을 선택합니다.
표시된 항목을 적절하게 입력합니다.중요한 것은'Authorization call back URL'이다.Giithub 인증 후 여기에 입력한 URL을 리디렉션합니다.입력이 끝나면 Register applicaton 버튼을 클릭합니다.
클릭하면 오른쪽 위에 있는 모자이크로 가공된 Client ID와 Client Secret을 복사하여 편집기에 붙여넣습니다.나중에 설정 파일에 기술합니다.
구성 파일에 Celient ID 및 Celient Secret 등록
Facade
의 설정은 Laravel Socialite
에 등록됩니다.services.php
<?php
return [
'github' => [
'client_id' => 'xxx',
'client_secret' => 'xxx',
'redirect' => 'http://localhost:8000/github/login',
]
];
config/services.php
와 client_id
는 방금 복사한 것입니다.client_secret
에 등록할 때 입력한 redirect
를 기술합니다.어.. 응.나는 이런 설정치를 공유하고 싶지 않다.Laavel은 Ruby
Authorization callback URL
와 비슷한 기능을 가지고 있으니 다시 써 보십시오.services.php
<?php
return [
'github' => [
'client_id' => getenv('GITHUB_CLIENT_ID'),
'client_secret' => getenv('GITHUB_CLIENT_SECRET'),
'redirect' => 'http://localhost:8000/github/login',
]
];
그리고 프로젝트의 노선에 dotenv
라는 서류를 작성한다.그리고 다음과 같이 설정합니다..env
GITHUB_CLIENT_ID=XXXXXXXXXXX
GITHUB_CLIENT_SECRET=XXXXXXXXXXXXXXXXX
.env
파일은 서로 다른 환경에서 포함하지 않으려는 설정값과 버전 관리를 설정하기 위한 것입니다.여기에 설정된 값은 .env
함수를 사용하여 얻을 수 있습니다.여기서 끝내도록 설정합니다.설치를 시작합시다.
소셜 로그인을 시도해 보세요.
아주 간단합니다.
getenv
가볍게 쓸 수 있습니다.routes.php
<?php
Route::pattern('provider', 'github');
Route::get('/', function()
{
if (!Auth::check()) {
// ログイン済でなければリダイレクト
return 'こんにちは ゲストさん. ' . link_to('github/ahthorize', 'Github でログイン.');
}
return 'ようこそ ' . Auth::user()->username . 'さん!';
});
Route::get('{provider}/authorize', function($provider)
{
// ソーシャルログイン処理
return \Socialite::with($provider)->redirect();
});
Route::get('{provider}/login', function($provider)
{
// ユーザー情報取得
$userData = Socialite::with($provider)->user();
// ユーザー作成
$user = User::firstOrCreate([
'username' => $userData->nickname,
'email' => $userData->email,
'avatar' => $userData->avatar
]);
Auth::login($user);
return redirect('/');
});
아주 간단합니다.간단하게 설명해 주세요.app/Http/routes.php
에 액세스하고 로그인하지 않은 경우'/'
리디렉션github/authorize
\Socialite::with($provider)->redirect()
로 설정되었을 때 Authorization callback URL
로 호출하여 사용자를 얻기드라이버를 개별적으로 설치
지금 쓰고 있어요.미안합니다.업데이트 후에 알려드릴게요. 저장해 주시겠어요?삐라
썼어.1년간의 복수.
Laavel Socialite의 독립 실행형 드라이버 설치
내일은 @syossan27씨의 "Laavel로 몇 가지 서비스를 해보면"입니다.기대해주세요!
Reference
이 문제에 관하여(Laavel Socialite로 간단한 소셜 로그인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/localdisk/items/2e2724f31864fd49b675텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)