flph / oauth2-social-login by flph

A simple oauth2 social login helper
45
0
2
Package Data
Maintainer Username: flph
Maintainer Contact: alquimista@gmx.pt (Phantom)
Package Create Date: 2015-08-28
Package Last Update: 2015-09-17
Language: PHP
License: MIT
Last Refreshed: 2024-03-26 03:08:07
Package Statistics
Total Downloads: 45
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 0
Total Watchers: 2
Total Forks: 1
Total Open Issues: 0

Oauth2 Social Login Package for Laravel 4

This package is very easy to integrate with any project that needs to login with and oauth2 client.

It implements the oauth flow:

  • Log in with a social provider
  • Connect an existing user record with a social provider
  • Perform requests against the social provider API with each user's unique access token

Supported Services

At this time is only implemented facebook provider.

Installation Via Composer

Add this to your composer.json file, in the require object:

"phantom/oauth2-social-login": "^0.0.2"

After that, run composer install to install the package.

Add the service provider to app/config/app.php, within the providers array.

'providers' => array(
	// ...
	'Phantom\Oauth2SocialLogin\Oauth2SocialLoginServiceProvider',
)

Configuration

Publish the default config file to your application so you can make modifications.

$ php artisan config:publish phantom/oauth2-social-login

Add your service provider credentials to the published config file: app/config/packages/phantom/oauth2-social-login/facebook.php

Basic Usage

You may put a link on a view that redirect the user to the oAuth log in page for a provider.

<a href="{{ {{Facebook::getLoginUrl()}} }}">
	Connect Your Facebook Account
</a>

On the controller that parse the redirect uri you defined on config request the token to the provider.

$code = Input::get('code');
$token = Facebook::getToken($code);

Once you have the token, you may do any call to the provider api you want. For instance there is a simple function to request the user own profile data.

$user = Facebook::getUserInfo($token);

Error Handling

You may use try catch control to catch if something goes wrong

	try{}catch(Exception $exp){
		switch($exp->getCode()){
			case 401: //The provider did not provide you and access token
				break;
			case 415: //The response with user info have bad formatted data
				break;
			default: //There was a problem connecting to provider
		}
	}
```		

#### Requirements

This implementation assumes that you want to allow your users to log in or sign up seamlessly with their existing social provider account and associate that social provider account with an existing user record.

#### Social Login Flow

* Simply create a link to the redirect login generated url. The user will be redirected to the provider login page before they return to your website.

* If an existing user is already linked to the provider account do the log in as that user.

* If an existing user is not found for the provider account, a new user record must be created and then a link to the provider account must be made before he is logged in as that user.

* You can also associate a social provider account to an existing user if they are already logged in.