Laravel 인증 관련 모듈 중 가장 많이 사용되는 놈으로보여 설치해 보았습니다. 먼저 composer.json 에 다음을 추가합니다.
"require": {
"artdarek/oauth-4-laravel": "dev-master"
}
업데이트를 실행합니다.
composer update
app\config\app.php 에 서비스 프로바이더를 추가합니다.
'providers' => array(
// ...
'Artdarek\OAuth\OAuthServiceProvider'
)
별칭도 추가합니다.
'aliases' => array(
// ...
'OAuth' => 'Artdarek\OAuth\Facade\OAuth',
)
이어서 설정 파일을 생성합니다.
php artisan config:publish artdarek/oauth-4-laravel
생성된 파일은 app/config/packages/artdarek/oauth-4-laravel.config.php 이며 아래의 내용을 가지고 있습니다. 페이스북에서 발급받은 App ID, App Secret 등을 입력합니다.
<?php
return array(
/*
|--------------------------------------------------------------------------
| oAuth Config
|--------------------------------------------------------------------------
*/
/**
* Storage
*/
'storage' => 'Session',
/**
* Consumers
*/
'consumers' => array(
/**
*/
'Facebook' => array(
'client_id' => 'App ID 값',
'client_secret' => 'App Secrect 값',
'scope' => array('email'),
),
)
);
인증 처리를 위한 컨트롤러를 생성합니다.
php artisan genereate:controller AuthController
생성된 컨트롤러에 페이스북 로그인 처리를 위한 메소드를 추가합니다.(예제에 있는 소스를 그대로 사용하였습니다.)
<?php
class AuthController extends \BaseController {
public function loginWithFacebook()
{
// get data from input
$code = Input::get( 'code' );
// get fb service
$fb = OAuth::consumer( 'Facebook' );
// check if code is valid
// if code is provided get user data and sign in
if ( !empty( $code ) ) {
// This was a callback request from facebook, get the token
$token = $fb->requestAccessToken( $code );
// Send a request with it
$result = json_decode( $fb->request( '/me' ), true );
$message = 'Your unique facebook user id is: ' . $result['id'] . ' and your name is ' . $result['name'];
echo $message. "<br/>";
//Var_dump
//display whole array().
dd($result);
}
// if not ask for permission first
else {
// get fb authorization
$url = $fb->getAuthorizationUri();
// return to facebook login url
return Redirect::to( (string)$url );
}
}
}
라우트 및 링크는 다음과 같습니다.
Route::get('fbauth', 'AuthController@loginWithFacebook');
<a href="fbauth">페이스북으로 로그인하기</a>
Laravel 5의 경우,
composer.json 에 아래와 같이 추가합니다.
"require": {
"oriceon/oauth-5-laravel": "dev-master"
}
Provider 및 별칭을 config/app.php 에 등록합니다.
'providers' => [
// ...
'Artdarek\OAuth\OAuthServiceProvider',
]
'aliases' => [
// ...
'OAuth' => 'Artdarek\OAuth\Facade\OAuth',
]
github 의 설명은 상기와 같지만 기존 app.php 에 등록된 프로바이더와 별칭의 형식에 맞게 다음과 같이 추가하였습니다.
Artdarek\OAuth\OAuthServiceProvider::class,
...
'OAuth' => Artdarek\OAuth\Facade\OAuth::class,
이후 설정 파일을 생성하기 위하여 다음 명령어를 실행합니다.
php artisan vendor:publish
생성된 설정 파일은 config 디렉토리에 위치(oauth-5-laravel.php)합니다.
사용 예제에도 변화가 있습니다.
public function loginWithFacebook(Request $request)
{
// get data from request
$code = $request->get('code');
// get fb service
$fb = \OAuth::consumer('Facebook');
// check if code is valid
// if code is provided get user data and sign in
if ( ! is_null($code))
{
// This was a callback request from facebook, get the token
$token = $fb->requestAccessToken($code);
// Send a request with it
$result = json_decode($fb->request('/me'), true);
$message = 'Your unique facebook user id is: ' . $result['id'] . ' and your name is ' . $result['name'];
echo $message. "<br/>";
//Var_dump
//display whole array.
dd($result);
}
// if not ask for permission first
else
{
// get fb authorization
$url = $fb->getAuthorizationUri();
// return to facebook login url
return redirect((string)$url);
}
}
'프로그래밍 > Web' 카테고리의 다른 글
Laravel 5.2 Whoops 디버그 패키지 사용하기 (0) | 2016.06.03 |
---|---|
PhpStorm 에서 Laravel 프로젝트 설정하기... (4) | 2015.10.15 |
Laravel 4.2 이상, 소프트 삭제 (0) | 2015.06.05 |
Laravel 4 bootstrapper 설치하기 (0) | 2015.01.15 |
Laravel 4 서브 디렉토리 구조 구현 - 마이그레이션 (0) | 2015.01.13 |
댓글