Creates an avenue for using ApiKey authentication for Symfony2. Requires FOSUserBundle.
Requires composer, install as follows
composer require uecode/api-key-bundle dev-master
Place in your AppKernel.php
to enable the bundle
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new Uecode\Bundle\ApiKeyBundle\UecodeApiKeyBundle(),
);
}
You can change how the API key should be delivered and the name of the parameter its sent as. By default, this bundle looks for api_key
in the query string.
uecode_api_key:
delivery: query #or header
parameter_name: some_value # defaults to `api_key`
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.
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
provider: db # Required if you have multiple providers and firewalls