2017 © Pedro Peláez
 

library salesforce-oauth-middleware

Salesforce OAuth 2.0 middleware for REST API calls

image

dmt-software/salesforce-oauth-middleware

Salesforce OAuth 2.0 middleware for REST API calls

  • Friday, May 25, 2018
  • by proggeler
  • Repository
  • 1 Watchers
  • 0 Stars
  • 0 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Salesforce-OAuth-Middleware

Build Status Scrutinizer Code Quality Code Coverage, (*1)

This authorization middleware uses the OAuth grant_type password to authenticate and authorize a request to the Salesforce REST API., (*2)

Install

composer require dmt-software/salesforce-oauth-middleware, (*3)

Usage

<?php

use DMT\Salesforce\Auth\Authorization\SalesforceAuthorization;
use DMT\Auth\AuthorizationMiddleware;
use GuzzleHttp\Client;
use GuzzleHttp\Handler\CurlHandler;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Middleware;
use Stevenmaguire\OAuth2\Client\Provider\Salesforce;

$oAuthProvider = new Salesforce(
     [
         'clientId'          => 'YourCustomedKey',
         'clientSecret'      => 'YourCustomerSecret',
         'redirectUri'       => 'https://localhost', // wont be visited for grant_type password
     ]
);
$authMiddleware = new AuthorizationMiddleware(
  new SalesforceAuthorization($oAuthProvider, 'YourUsername', 'YourPasswordAmdSecret')
);

$stack = new HandlerStack();
$stack->setHandler(new CurlHandler());
$stack->push(Middleware::mapRequest($authMiddleware));

$client = new Client([
    'handler' => $stack
]);

// request will be authorized and routed to your client (sub)domain according to the instance_url received from OAuth
$response = $client->get('https://salesforce.com/services/data/v26.0/sobjects/Account');

Cache

To re-use an access token this middleware can be configured with a PSR-16 cache implementation., (*4)

<?php

use DMT\Salesforce\Auth\Authorization\SalesforceAuthorization;
use DMT\Auth\AuthorizationMiddleware;
use Psr\SimpleCache\CacheInterface;
use Stevenmaguire\OAuth2\Client\Provider\Salesforce;

/** @var Salesforce $oAuthProvider */
/** @var CacheInterface $dataCache */
$authMiddleware = new AuthorizationMiddleware(
    new SalesforceAuthorization($oAuthProvider, 'YourUsername', 'YourPasswordAmdSecret', $dataCache)
);

NOTE: Currently Salesforce does not provide an expiration time or refresh token when grant_type password is used. Cached access tokens will be recycled every hour (when handled by this middleware). This might change later to better suit implementations (I'm open for suggestions)., (*5)

The Versions

25/05 2018

dev-master

9999999-dev

Salesforce OAuth 2.0 middleware for REST API calls

  Sources   Download

MIT

The Requires

 

The Development Requires

by Bas de Mes

25/05 2018

v1.0.0

1.0.0.0

Salesforce OAuth 2.0 middleware for REST API calls

  Sources   Download

MIT

The Requires

 

The Development Requires

by Bas de Mes