Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/effectra/third-party
Effectra\ThirdParty is a PHP library that provides OAuth configuration and functionality for various third-party platforms such as LinkedIn, GitHub, Facebook, and Google. It simplifies the process of integrating with these platforms and accessing user data through OAuth authentication
https://github.com/effectra/third-party
authentication facebook github google http-client linkedin oauth oauth2 php third-party
Last synced: about 2 hours ago
JSON representation
Effectra\ThirdParty is a PHP library that provides OAuth configuration and functionality for various third-party platforms such as LinkedIn, GitHub, Facebook, and Google. It simplifies the process of integrating with these platforms and accessing user data through OAuth authentication
- Host: GitHub
- URL: https://github.com/effectra/third-party
- Owner: effectra
- Created: 2023-05-22T11:14:45.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-19T21:44:32.000Z (10 months ago)
- Last Synced: 2024-06-20T16:03:49.620Z (5 months ago)
- Topics: authentication, facebook, github, google, http-client, linkedin, oauth, oauth2, php, third-party
- Language: PHP
- Homepage:
- Size: 6.84 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Effectra ThirdParty Library
Effectra\ThirdParty is a PHP library that provides OAuth configuration and functionality for various third-party platforms such as LinkedIn, GitHub, Facebook, and Google. It simplifies the process of integrating with these platforms and accessing user data through OAuth authentication.
## Features
- Simplified OAuth configuration and authentication for third-party platforms.
- Easy retrieval of access tokens and user information.
- Supports multiple popular platforms like LinkedIn, GitHub, Facebook, and Google.## Installation
You can install the Effectra\ThirdParty library via Composer. Run the following command in your project directory:
```shell
composer require effectra/third-party
```## Usage
To use the LinkedIn OAuth functionality, follow these steps:
1. Create an instance of the `LinkedIn` class by providing your LinkedIn client ID, client secret, and optional redirect URL and scopes.
```php
use Effectra\ThirdParty\LinkedIn;$linkedin = new LinkedIn('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET', 'YOUR_REDIRECT_URL', ['r_liteprofile', 'r_emailaddress']);
```2. Generate the authorization URL to redirect the user for authentication:
```php
$authUrl = $linkedin->getAuthURL();
```3. Redirect the user to the generated authorization URL. After successful authentication, LinkedIn will redirect the user back to the specified redirect URL with an authorization code.
4. Exchange the authorization code for an access token:
```php
$code = $_GET['code']; // The authorization code obtained from the LinkedIn redirect
$accessToken = $linkedin->getAccessToken($code);
```5. Use the access token to retrieve user information:
```php
$user = $linkedin->getUser($accessToken);
```### GitHub
To use the GitHub OAuth functionality, follow these steps:
1. Create an instance of the `GitHub` class by providing your GitHub client ID, client secret, and optional redirect URL and scopes.
```php
use Effectra\ThirdParty\GitHub;$github = new GitHub('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET', 'YOUR_REDIRECT_URL', ['user']);
```2. Generate the authorization URL to redirect the user for authentication:
```php
$authUrl = $github->getAuthURL();
```3. Redirect the user to the generated authorization URL. After successful authentication, GitHub will redirect the user back to the specified redirect URL with an authorization code.
4. Exchange the authorization code for an access token:
```php
$code = $_GET['code']; // The authorization code obtained from the GitHub redirect
$accessToken = $github->getAccessToken($code);
```5. Use the access token to retrieve user information:
```php
$user = $github->getUser($accessToken);
```To use the Facebook OAuth functionality, follow these steps:
1. Create an instance of the `Facebook` class by providing your Facebook client ID, client secret, and optional redirect URL and scopes.
```php
use Effectra\ThirdParty\Facebook;$facebook = new Facebook('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET', 'YOUR_REDIRECT_URL', ['email']);
```2. Generate the authorization URL to redirect the user for authentication:
```php
$authUrl = $facebook->getAuthURL();
```3. Redirect the user to the generated authorization URL. After successful authentication, Facebook will redirect the user back to the specified redirect URL with an authorization code.
4. Exchange the authorization code for an access token:
```php
$code = $_GET['code']; // The authorization code obtained from the Facebook redirect
$accessToken = $facebook->getAccessToken($code);
```5
. Use the access token to retrieve user information:
```php
$user = $facebook->getUser($accessToken);
```To use the Google OAuth functionality, follow these steps:
1. Create an instance of the `Google` class by providing your Google client ID, client secret, and optional redirect URL and scopes.
```php
use Effectra\ThirdParty\Google;$google = new Google('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET', 'YOUR_REDIRECT_URL', ['profile', 'email']);
```2. Generate the authorization URL to redirect the user for authentication:
```php
$authUrl = $google->getAuthURL();
```3. Redirect the user to the generated authorization URL. After successful authentication, Google will redirect the user back to the specified redirect URL with an authorization code.
4. Exchange the authorization code for an access token:
```php
$code = $_GET['code']; // The authorization code obtained from the Google redirect
$accessToken = $google->getAccessToken($code);
```5. Use the access token to retrieve user information:
```php
$user = $google->getUser($accessToken);
```## OAuthServiceInterface
The `OAuthServiceInterface` is an interface that defines the contract for an OAuth service. It provides methods for retrieving configuration, authorization URL, access token, and user data from an OAuth service.
### Usage
To use this interface, you need to create a class that implements it and provides the necessary functionality. Here's an example of how you can implement the `OAuthServiceInterface`:
```php