Skip to content

Creates an avenue for using ApiKey authentication for Symfony2. Requires FOSUserBundle

License

Notifications You must be signed in to change notification settings

CodeLoversAt/api-key-bundle

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ApiKey Bundle

Creates an avenue for using ApiKey authentication for Symfony2. Requires FOSUserBundle.

Installation

Requires composer, install as follows

composer require uecode/api-key-bundle dev-master

Enable Bundle

Place in your AppKernel.php to enable the bundle

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Uecode\Bundle\ApiKeyBundle\UecodeApiKeyBundle(),
    );
}

Entities

Assuming you already have a User class that extends the FOSUserBundle's base user model, change that extend, so its extending Uecode\Bundle\ApiKeyBundle\Model\ApiKeyUser

Then update your schema.

Set up security

In your security, change your provider to the service uecode.api_key.provider.user_provider

security:
    providers:
        db:
            id: uecode.api_key.provider.user_provider

    # Or

    providers:
        chain_provider:
            chain:
                providers: [db, memory]
        memory: # .....
        db:
            id: uecode.api_key.provider.user_provider

After adding that, you can now add api_key: true, and stateless: true to any of your firewalls.

For Example:

security:
    firewalls:
        auth:
            pattern: ^/api/*
            api_key: true
            stateless: true

Public resources

If you want to allow public resources within the firewall's realm for which the clients do not need to provide an API key, then you can configure force_api_key to false in your config.yml.

uecode_api_key:
    force_api_key: false

About

Creates an avenue for using ApiKey authentication for Symfony2. Requires FOSUserBundle

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%