1. Go to this page and download the library: Download muffin/oauth2 library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
muffin / oauth2 example snippets
// either in `config/bootstrap.php`
Configure::write('Muffin/OAuth2', [
'providers' => [
'github' => [
'className' => 'League\OAuth2\Client\Provider\Github',
// all options defined here are passed to the provider's constructor
'options' => [
'clientId' => 'foo',
'clientSecret' => 'bar',
],
'mapFields' => [
'username' => 'login', // maps the app's username to github's login
],
// ... add here the usual AuthComponent configuration if needed like fields, etc.
],
],
]);
// or in `src/Controller/AppController.php`
$this->loadComponent('Auth', [
'authenticate' => [
// ...
'Muffin/OAuth2.OAuth' => [
'providers' => [
// the array from example above
],
],
],
]);
// bootstrap.php
use Cake\Event\Event;
use Cake\ORM\TableRegistry;
EventManager::instance()->on(
'Muffin/OAuth2.newUser',
[TableRegistry::get('Users'), 'createNewUser']
);
// UsersTable.php
use Cake\Event\Event;
use League\OAuth2\Client\Provider\AbstractProvider;
public function createNewUser(Event $event, AbstractProvider $provider, array $data)
{
$entity = $this->newEntity($data);
$this->save($entity);
return $entity->toArray(); // user data to be used in session
}
// bootstrap.php
use Cake\Event\Event;
use Cake\ORM\TableRegistry;
EventManager::instance()->on(
'Muffin/OAuth2.afterIdentify',
[TableRegistry::get('Tokens'), 'createOrUpdate']
);
// TokensTable.php
use Cake\Event\Event;
use League\OAuth2\Client\Provider\AbstractProvider;
public function createOrUpdate(Event $event, AbstractProvider $provider, array $data)
{
// ...
return; // void
}