#5: Added Laravel Socialite. The redirect to Facebook is now working.

This commit is contained in:
Andy Heathershaw 2018-08-13 14:25:56 +01:00
parent eaba161f5c
commit 564fcd4b09
5 changed files with 162 additions and 2 deletions

View File

@ -6,6 +6,7 @@ use App\Facade\Theme;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers; use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Socialite;
class LoginController extends Controller class LoginController extends Controller
{ {
@ -61,4 +62,27 @@ class LoginController extends Controller
'info' => $request->session()->get('info') 'info' => $request->session()->get('info')
]); ]);
} }
/**
* Redirect the user to the Facebook authentication page.
*
* @return \Illuminate\Http\Response
*/
public function redirectToFacebook()
{
return Socialite::driver('facebook')->redirect();
}
/**
* Obtain the user information from Facebook.
*
* @return \Illuminate\Http\Response
*/
public function handleFacebookCallback()
{
$user = Socialite::driver('facebook')->user();
dd($user);
// $user->token;
}
} }

View File

@ -9,7 +9,8 @@
"laravel/framework": "5.5.*", "laravel/framework": "5.5.*",
"rackspace/php-opencloud": "^1.16", "rackspace/php-opencloud": "^1.16",
"doctrine/dbal": "^2.5", "doctrine/dbal": "^2.5",
"aws/aws-sdk-php": "^3.19" "aws/aws-sdk-php": "^3.19",
"laravel/socialite": "^3.0"
}, },
"require-dev": { "require-dev": {
"filp/whoops": "~2.0", "filp/whoops": "~2.0",

127
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "2469338aa47d9194dc0c44bc788fb070", "content-hash": "7e1113109ae57d549a01afba28bdb219",
"packages": [ "packages": [
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
@ -948,6 +948,68 @@
], ],
"time": "2018-03-30T13:29:30+00:00" "time": "2018-03-30T13:29:30+00:00"
}, },
{
"name": "laravel/socialite",
"version": "v3.0.12",
"source": {
"type": "git",
"url": "https://github.com/laravel/socialite.git",
"reference": "b5f465847b1d637efa86bbfe2fc1c9d2bd12f60f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/socialite/zipball/b5f465847b1d637efa86bbfe2fc1c9d2bd12f60f",
"reference": "b5f465847b1d637efa86bbfe2fc1c9d2bd12f60f",
"shasum": ""
},
"require": {
"guzzlehttp/guzzle": "~6.0",
"illuminate/contracts": "~5.4",
"illuminate/http": "~5.4",
"illuminate/support": "~5.4",
"league/oauth1-client": "~1.0",
"php": ">=5.4.0"
},
"require-dev": {
"mockery/mockery": "~0.9",
"phpunit/phpunit": "~4.0|~5.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0-dev"
},
"laravel": {
"providers": [
"Laravel\\Socialite\\SocialiteServiceProvider"
],
"aliases": {
"Socialite": "Laravel\\Socialite\\Facades\\Socialite"
}
}
},
"autoload": {
"psr-4": {
"Laravel\\Socialite\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Taylor Otwell",
"email": "taylor@laravel.com"
}
],
"description": "Laravel wrapper around OAuth 1 & OAuth 2 libraries.",
"keywords": [
"laravel",
"oauth"
],
"time": "2018-06-01T15:06:47+00:00"
},
{ {
"name": "league/flysystem", "name": "league/flysystem",
"version": "1.0.45", "version": "1.0.45",
@ -1032,6 +1094,69 @@
], ],
"time": "2018-05-07T08:44:23+00:00" "time": "2018-05-07T08:44:23+00:00"
}, },
{
"name": "league/oauth1-client",
"version": "1.7.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/oauth1-client.git",
"reference": "fca5f160650cb74d23fc11aa570dd61f86dcf647"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/fca5f160650cb74d23fc11aa570dd61f86dcf647",
"reference": "fca5f160650cb74d23fc11aa570dd61f86dcf647",
"shasum": ""
},
"require": {
"guzzlehttp/guzzle": "^6.0",
"php": ">=5.5.0"
},
"require-dev": {
"mockery/mockery": "^0.9",
"phpunit/phpunit": "^4.0",
"squizlabs/php_codesniffer": "^2.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
}
},
"autoload": {
"psr-4": {
"League\\OAuth1\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ben Corlett",
"email": "bencorlett@me.com",
"homepage": "http://www.webcomm.com.au",
"role": "Developer"
}
],
"description": "OAuth 1.0 Client Library",
"keywords": [
"Authentication",
"SSO",
"authorization",
"bitbucket",
"identity",
"idp",
"oauth",
"oauth1",
"single sign on",
"trello",
"tumblr",
"twitter"
],
"time": "2016-08-17T00:36:58+00:00"
},
{ {
"name": "mikemccabe/json-patch-php", "name": "mikemccabe/json-patch-php",
"version": "0.1.0", "version": "0.1.0",

View File

@ -14,6 +14,12 @@ return [
| |
*/ */
'facebook' => [
'client_id' => env('FACEBOOK_CLIENT_ID'),
'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
'redirect' => url('login/facebook/callback')
],
'gitea' => [ 'gitea' => [
'api_url' => 'https://apps.andysh.uk/api/v1', 'api_url' => 'https://apps.andysh.uk/api/v1',
'cache_time_seconds' => 3600, 'cache_time_seconds' => 3600,

View File

@ -74,6 +74,10 @@ Route::group(['prefix' => 'install'], function () {
Route::post('/database', 'InstallController@database')->name('install.database'); Route::post('/database', 'InstallController@database')->name('install.database');
}); });
// Social media SSO
Route::get('login/facebook', 'Auth\LoginController@redirectToFacebook')->name('login.facebook');
Route::get('login/facebook/callback', 'Auth\LoginController@handleFacebookCallback')->name('login_callback.facebook');
// Gallery // Gallery
Route::get('/', 'Gallery\DefaultController@index')->name('home'); Route::get('/', 'Gallery\DefaultController@index')->name('home');
Route::get('/activate/{token}', 'Auth\ActivateController@activate')->name('auth.activate'); Route::get('/activate/{token}', 'Auth\ActivateController@activate')->name('auth.activate');