PHPackages                             nathanphan/passport-facebook-login - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. nathanphan/passport-facebook-login

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

nathanphan/passport-facebook-login
==================================

Facebook Token Request Grant for Laravel Passport

05PHP

Since Nov 11Pushed 7y ago1 watchersCompare

[ Source](https://github.com/nathanphan/passport-facebook-login)[ Packagist](https://packagist.org/packages/nathanphan/passport-facebook-login)[ RSS](/packages/nathanphan-passport-facebook-login/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Passport Facebook Login
===============================

[](#laravel-passport-facebook-login)

Provides a new Laravel Passport Grant Client named `facebook_login`, allowing you to log a user in with just their Facebook Login token.

A new user will be created (and optionally assigned to an role - `$user->attachRole(ID)`) if the email address doesn't exist.

Installation:
-------------

[](#installation)

Install with composer `composer require nathanphan/passport-facebook-login`. Use major version 1 for Passport 4 and below Laravel 5.6 compatibility.

### Versions:

[](#versions)

- Laravel 5.7, with Passport 5, 6 or 7.

Dependencies:
-------------

[](#dependencies)

- [laravel/passport](https://github.com/laravel/passport): `5.0||6.0||7.0`
- [facebook/php-graph-sdk](https://github.com/facebook/php-graph-sdk): `5.6`

Setup:
------

[](#setup)

- Add `Danjdewhurst\PassportFacebookLogin\FacebookLoginGrantProvider::class` to your list of providers **after** `Laravel\Passport\PassportServiceProvider`.
- Add `Danjdewhurst\PassportFacebookLogin\FacebookLoginTrait` Trait to your `User` model (or whatever model you have configured to work with Passport).
- Run `php artisan vendor:publish`, this will create a `config/facebook.php` file.
- Enter your Facebook App details in your `.env` file: `FACEBOOK_APP_ID` and `FACEBOOK_APP_SECRET`.
- Optional: To automatically attach a role () to new users, use the 'ATTACH\_ROLE' env setting.

**Config:**

```
    /*
    |--------------------------------------------------------------------------
    | Application
    |--------------------------------------------------------------------------
    |
    | The facebook ID and secret from the developer's page
    |
    */

    'app' => [
        'id' => env('FACEBOOK_APP_ID'),
        'secret' => env('FACEBOOK_APP_SECRET'),
    ],

    /*
    |--------------------------------------------------------------------------
    | Registration Fields
    |--------------------------------------------------------------------------
    |
    | The name of the fields on the user model that need to be updated,
    | if null, they shall not be updated. (valid for name, first_name, last_name)
    |
    */

    'registration' => [
        'facebook_id' => env('FACEBOOK_ID_COLUMN', 'facebook_id'),
        'email'       => env('EMAIL_COLUMN', 'email'),
        'password'    => env('PASSWORD_COLUMN', 'password'),
        'first_name'  => env('FIRST_NAME_COLUMN', 'first_name'),
        'last_name'   => env('LAST_NAME_COLUMN', 'last_name'),
        'name'        => env('NAME_COLUMN', 'name'),
        'attach_role' => env('ATTACH_ROLE', null),
    ],
```

How To Use:
-----------

[](#how-to-use)

- Make a **POST** request to `https://your-site.com/oauth/token`.
- The POST body should contain
    1. `grant_type` = `facebook_login`
    2. `fb_token` = `{token from facebook login}`.
    3. client\_id
    4. client\_secret
- An `access_token` and `refresh_token` will be returned if successful.

Assumptions:
------------

[](#assumptions)

- Your `User` model has the folowing fields:
- - `facebook_id`
- - `name` or `first_name` &amp; `last_name`
- - `email`
- - `password`

Why not use Laravel 5.5's auto-discovery?
-----------------------------------------

[](#why-not-use-laravel-55s-auto-discovery)

We have found that using auto discovery can cause issues as this package relies on Laravel Passport been loaded before this package. Sometimes this doesn't happen, and caused issues as Laravel Passport sets up a singleton we reference.

We hope that one day there will be a fix to Laravel auto-discovery that will allow for dependencies to be handled better.

Credits:
--------

[](#credits)

-
-

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/314decec3c5ac5cea582a4a7681f48d82e6042bfb2367d2b3ff6e1a59252e54c?d=identicon)[nathanphan](/maintainers/nathanphan)

---

Top Contributors

[![nathanphan](https://avatars.githubusercontent.com/u/522816?v=4)](https://github.com/nathanphan "nathanphan (5 commits)")

### Embed Badge

![Health badge](/badges/nathanphan-passport-facebook-login/health.svg)

```
[![Health](https://phpackages.com/badges/nathanphan-passport-facebook-login/health.svg)](https://phpackages.com/packages/nathanphan-passport-facebook-login)
```

###  Alternatives

[namshi/jose

JSON Object Signing and Encryption library for PHP.

1.8k99.6M101](/packages/namshi-jose)[league/oauth1-client

OAuth 1.0 Client Library

99698.8M106](/packages/league-oauth1-client)[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[gesdinet/jwt-refresh-token-bundle

Implements a refresh token system over Json Web Tokens in Symfony

70516.4M35](/packages/gesdinet-jwt-refresh-token-bundle)[league/oauth2-google

Google OAuth 2.0 Client Provider for The PHP League OAuth2-Client

41721.2M118](/packages/league-oauth2-google)[illuminate/auth

The Illuminate Auth package.

9327.3M1.0k](/packages/illuminate-auth)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
