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-11-14 15:07:28 |
Package Statistics | |
---|---|
Total Downloads: | 46 |
Monthly Downloads: | 1 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 2 |
Total Forks: | 1 |
Total Open Issues: | 0 |
This package is very easy to integrate with any project that needs to login with and oauth2 client.
It implements the oauth flow:
At this time is only implemented facebook provider.
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',
)
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
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);
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.