PHPackages                             authbucket/oauth2-symfony-bundle - 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. [Logging &amp; Monitoring](/categories/logging)
4. /
5. authbucket/oauth2-symfony-bundle

ActiveSymfony-bundle[Logging &amp; Monitoring](/categories/logging)

authbucket/oauth2-symfony-bundle
================================

Symfony OAuth2Bundle

4.2.0(8y ago)839.2k↓30%26[4 PRs](https://github.com/authbucket/oauth2-symfony-bundle/pulls)1MITPHPPHP &gt;=5.5.9

Since Jul 1Pushed 8y ago14 watchersCompare

[ Source](https://github.com/authbucket/oauth2-symfony-bundle)[ Packagist](https://packagist.org/packages/authbucket/oauth2-symfony-bundle)[ Docs](https://github.com/authbucket/oauth2-symfony-bundle)[ RSS](/packages/authbucket-oauth2-symfony-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (15)Versions (75)Used By (1)

AuthBucket\\Bundle\\OAuth2Bundle
================================

[](#authbucketbundleoauth2bundle)

[![Build Status](https://camo.githubusercontent.com/3da01fdfe71d91ef0ed0e9a0729f2f9abd53f0bd60e47d3712e2d596b1722f8f/68747470733a2f2f7472617669732d63692e6f72672f617574686275636b65742f6f61757468322d73796d666f6e792d62756e646c652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/authbucket/oauth2-symfony-bundle)[![Coverage Status](https://camo.githubusercontent.com/0626798b50313be6538b852d0628d3c2273aa822497aad53c59dc896130cb6b1/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f617574686275636b65742f6f61757468322d73796d666f6e792d62756e646c652f62616467652e7376673f6272616e63683d6d617374657226736572766963653d676974687562)](https://coveralls.io/github/authbucket/oauth2-symfony-bundle?branch=master)[![Dependency Status](https://camo.githubusercontent.com/0a11621c069566c203b9b0b23af85fb9571fdcd2a2e30ebcd38931194bad54ce/68747470733a2f2f7777772e76657273696f6e6579652e636f6d2f7068702f617574686275636b65743a6f61757468322d73796d666f6e792d62756e646c652f6465762d6d61737465722f62616467652e737667)](https://www.versioneye.com/php/authbucket:oauth2-symfony-bundle/dev-master)[![Latest Stable Version](https://camo.githubusercontent.com/79fc63928e5a270f58b6221fd3db53de5cb1e9d76cab796fa0f56b02133e1bc9/68747470733a2f2f706f7365722e707567782e6f72672f617574686275636b65742f6f61757468322d73796d666f6e792d62756e646c652f762f737461626c652e737667)](https://packagist.org/packages/authbucket/oauth2-symfony-bundle)[![Total Downloads](https://camo.githubusercontent.com/5c9b1f50c95a5d9898c8d891a50814751824d8700507d4a66071719b9bbcf17d/68747470733a2f2f706f7365722e707567782e6f72672f617574686275636b65742f6f61757468322d73796d666f6e792d62756e646c652f646f776e6c6f6164732e737667)](https://packagist.org/packages/authbucket/oauth2-symfony-bundle)[![License](https://camo.githubusercontent.com/4cdaaf00accc2c18015bdc9c2bcd869310dd30c4a79d197203e43fdec43129df/68747470733a2f2f706f7365722e707567782e6f72672f617574686275636b65742f6f61757468322d73796d666f6e792d62756e646c652f6c6963656e73652e737667)](https://packagist.org/packages/authbucket/oauth2-symfony-bundle)

[AuthBucket\\Bundle\\OAuth2Bundle](http://oauth2-symfony-bundle.authbucket.com/) is a Symfony Bundle, which integrate [AuthBucket\\OAuth2](http://oauth2-php.authbucket.com/) as easy as possible into your [Symfony](http://symfony.com) Project.

Installation
------------

[](#installation)

Simply add a dependency on `authbucket/oauth2-symfony-bundle` to your project's `composer.json` file if you use [Composer](http://getcomposer.org/) to manage the dependencies of your project.

Here is a minimal example of a `composer.json`:

```
{
    "require": {
        "authbucket/oauth2-symfony-bundle": "~5.0"
    }
}

```

### Parameters

[](#parameters)

This bundle come with following parameters:

- `model`: (Optional) Override this with your own model classes, default with in-memory AccessToken for using resource firewall with remote debug endpoint.
- `driver`: (Optional) Currently we support in-memory (`in_memory`), or Doctrine ORM (`orm`). Default with in-memory for using resource firewall with remote debug endpoint.
- `user_provider`: (Optional) For using `grant_type = password`, override this parameter with your own user provider, e.g. using InMemoryUserProvider or a Doctrine ORM EntityRepository that implements UserProviderInterface.

### Services

[](#services)

This bundle come with following services controller which simplify the OAuth2.0 controller implementation overhead:

- `authbucket_oauth2.authorization_controller`: Authorization Endpoint controller.
- `authbucket_oauth2.token_controller`: Token Endpoint controller.
- `authbucket_oauth2.debug_controller`: Debug Endpoint controller.

### Registering

[](#registering)

You have to add `AuthBucketOAuth2Bundle` to your `AppKernel.php`:

```
# app/AppKernel.php

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = [
            new AuthBucket\Bundle\OAuth2Bundle\AuthBucketOAuth2Bundle(),
        ];

        return $bundles;
    }
}

```

Moreover, enable following bundles if that's not already the case:

```
$bundles = [
    new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
    new Symfony\Bundle\SecurityBundle\SecurityBundle(),
    new Symfony\Bundle\MonologBundle\MonologBundle(),
];

```

Usage
-----

[](#usage)

This library seperate the endpoint logic in frontend firewall and backend controller point of view, so you will need to setup both for functioning.

To enable the built-in controller with corresponding routing, add the following into your `routing.yml`, all above controllers will be enabled accordingly with routing prefix `/api/oauth2`:

```
# app/config/routing.yml

authbucketoauth2bundle:
    prefix:     /api/oauth2
    resource:   "@AuthBucketOAuth2Bundle/Resources/config/routing.yml"

```

Below is a list of recipes that cover some common use cases.

### Authorization Endpoint

[](#authorization-endpoint)

We don't provide custom firewall for this endpoint, which you should protect it by yourself, authenticate and capture the user credential, e.g. by [SecurityBundle](http://symfony.com/doc/current/reference/configuration/security.html):

```
# app/config/security.yml

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    providers:
        default:
            memory:
                users:
                    demousername1:  { roles: 'ROLE_USER', password: demopassword1 }
                    demousername2:  { roles: 'ROLE_USER', password: demopassword2 }
                    demousername3:  { roles: 'ROLE_USER', password: demopassword3 }

    firewalls:
        api_oauth2_authorize:
            pattern:                ^/api/oauth2/authorize$
            http_basic:             ~
            provider:               default

```

### Token Endpoint

[](#token-endpoint)

Similar as authorization endpoint, we need to protect this endpoint with our custom firewall `oauth2_token`:

```
# app/config/security.yml

security:
    firewalls:
        api_oauth2_token:
            pattern:                ^/api/oauth2/token$
            oauth2_token:           ~

```

### Debug Endpoint

[](#debug-endpoint)

We should protect this endpoint with our custom firewall `oauth2_resource`:

```
# app/config/security.yml

security:
    firewalls:
        api_oauth2_debug:
            pattern:                ^/api/oauth2/debug$
            oauth2_resource:        ~

```

### Resource Endpoint

[](#resource-endpoint)

We don't provide other else resource endpoint controller implementation besides above debug endpoint. You should consider implement your own endpoint with custom logic, e.g. fetching user email address or profile image.

On the other hand, you can protect your resource server endpoint with our custom firewall `oauth2_resource`. Shorthand version (default assume resource server bundled with authorization server, query local model manager, without scope protection):

```
# app/config/security.yml

security:
    firewalls:
        api_resource:
            pattern:                ^/api/resource
            oauth2_resource:        ~

```

Longhand version (assume resource server bundled with authorization server, query local model manager, protect with scope `demoscope1`):

```
# app/config/security.yml

security:
    firewalls:
        api_resource:
            pattern:                ^/api/resource
            oauth2_resource:
                resource_type:      model
                scope:              [ demoscope1 ]

```

If authorization server is hosting somewhere else, you can protect your local resource endpoint by query remote authorization server debug endpoint:

```
# app/config/security.yml

security:
    firewalls:
        api_resource:
            pattern:                ^/api/resource
            oauth2_resource:
                resource_type:      debug_endpoint
                scope:              [ demoscope1 ]
                options:
                    debug_endpoint: http://example.com/api/oauth2/debug
                    cache:          true

```

Demo
----

[](#demo)

The demo is based on [Symfony](http://symfony.com/) and [AuthBucketOAuth2Bundle](https://github.com/authbucket/oauth2-symfony-bundle/blob/master/src/AuthBucketOAuth2Bundle.php). Read though [Demo](http://oauth2-symfony-bundle.authbucket.com/demo) for more information.

You may also run the demo locally. Open a console and execute the following command to install the latest version in the `oauth2-symfony-bundle` directory:

```
$ composer create-project authbucket/oauth2-symfony-bundle authbucket/oauth2-symfony-bundle "~5.0"

```

Then use the PHP built-in web server to run the demo application:

```
$ cd authbucket/oauth2-symfony-bundle
$ ./bin/console server:run

```

If you get the error `There are no commands defined in the "server" namespace.`, then you are probably using PHP 5.3. That's ok! But the built-in web server is only available for PHP 5.4.0 or higher. If you have an older version of PHP or if you prefer a traditional web server such as Apache or Nginx, read the [Configuring a web server](http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html) article.

Open your browser and access the  URL to see the Welcome page of demo application.

Also access [http://127.0.0.1:8000/admin/refresh\_database](http://127.0.0.1:8000/admin/refresh_database) to initialize the bundled SQLite database with user account `admin`:`secrete`.

Documentation
-------------

[](#documentation)

OAuth2Bundle's documentation is built with [Sami](https://github.com/fabpot/Sami) and publicly hosted on [GitHub Pages](http://authbucket.github.io/oauth2-symfony-bundle).

To built the documents locally, execute the following command:

```
$ sami.php update .sami.php

```

Open `build/sami/index.html` with your browser for the documents.

Tests
-----

[](#tests)

This project is coverage with [PHPUnit](http://phpunit.de/) test cases; CI result can be found from [Travis CI](https://travis-ci.org/authbucket/oauth2-symfony-bundle); code coverage report can be found from [Coveralls](https://coveralls.io/r/authbucket/oauth2-symfony-bundle).

To run the test suite locally, execute the following command:

```
$ phpunit -c phpunit.xml.dist

```

Open `build/logs/html` with your browser for the coverage report.

References
----------

[](#references)

- [RFC6749](http://tools.ietf.org/html/rfc6749)
- [Demo](http://oauth2-symfony-bundle.authbucket.com/demo)
- [API](http://authbucket.github.io/oauth2-symfony-bundle/)
- [GitHub](https://github.com/authbucket/oauth2-symfony-bundle)
- [Packagist](https://packagist.org/packages/authbucket/oauth2-symfony-bundle)
- [Travis CI](https://travis-ci.org/authbucket/oauth2-symfony-bundle)
- [Coveralls](https://coveralls.io/r/authbucket/oauth2-symfony-bundle)

License
-------

[](#license)

- Code released under [MIT](https://github.com/authbucket/oauth2-symfony-bundle/blob/master/LICENSE)
- Docs released under [CC BY 4.0](http://creativecommons.org/licenses/by/4.0/)

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity40

Moderate usage in the ecosystem

Community20

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 99.7% 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.

###  Release Activity

Cadence

Every ~20 days

Recently: every ~4 days

Total

73

Last Release

3254d ago

Major Versions

3.1.0 → 4.1.02016-11-26

3.1.1 → 4.1.22017-04-20

3.1.2 → 4.1.52017-05-16

3.1.6 → 4.2.02017-06-03

3.2.0 → 5.0.0-alpha12017-06-12

PHP version history (3 changes)1.0.0-alpha1PHP &gt;=5.3.3

2.0.0PHP &gt;=5.3.9

3.0.0PHP &gt;=5.5.9

### Community

Maintainers

![](https://www.gravatar.com/avatar/8dc67be71c6d9a9242bfe0db8d0293a7a0731c35f6f9d6ae72ab13ba90af519f?d=identicon)[hswong3i](/maintainers/hswong3i)

---

Top Contributors

[![hswong3i](https://avatars.githubusercontent.com/u/780562?v=4)](https://github.com/hswong3i "hswong3i (337 commits)")[![stepotronic](https://avatars.githubusercontent.com/u/683595?v=4)](https://github.com/stepotronic "stepotronic (1 commits)")

---

Tags

psr-3symfonyoauth2PSR-4PSR-2PSR-1

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/authbucket-oauth2-symfony-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/authbucket-oauth2-symfony-bundle/health.svg)](https://phpackages.com/packages/authbucket-oauth2-symfony-bundle)
```

###  Alternatives

[authbucket/oauth2-php

The standard compliant OAuth2.0 library based on the Symfony Components

82107.6k4](/packages/authbucket-oauth2-php)[sulu/skeleton

Project template for starting your new project based on the Sulu content management system

29733.3k](/packages/sulu-skeleton)[xiidea/easy-audit

A Symfony Bundle To Log Selective Events. It is easy to configure and easy to customize for your need

91179.0k](/packages/xiidea-easy-audit)

PHPackages © 2026

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