Yii 2 extension that provides helper for authenticate Request
from
yii2-httpclient package.
This is a simple helper for yii2-simple-auth which
simplify authenticating Request
object from official Yii 2 httpclient extension.
Read yii2-simple-auth README
to get more details about authentication process and configuration.
The preferred way to install this extension is through composer.
Either run
php composer.phar require rob006/yii2-simple-auth-yii-authenticator
or add
"rob006/yii2-simple-auth-yii-authenticator": "^1.0"
to the require section of your composer.json
file.
You can simply authenticate Request
object from official Yii 2 httpclient
by using YiiAuthenticator
helper:
use yii\httpclient\Client;
use rob006\simpleauth\YiiAuthenticator as Authenticator;
$client = new Client();
$request = $client->createRequest()
->setUrl('http://api.example.com/user/list/')
->setData(['ids' => '1,2,3,4']);
$request = Authenticator::authenticate($request);
$response = $request->send();
By default Authenticator
sends authentication token in the header of the request. Alternatively
you can send it in GET or POST param of request. Be careful when you using POST method because
this will set request method as POST and all data set by \yii\httpclient\Request::setData()
will
be sent as POST data and will not be included in the URL.
Authentication by GET param with custom secret key:
use yii\httpclient\Client;
use rob006\simpleauth\YiiAuthenticator as Authenticator;
$client = new Client();
$request = $client->createRequest()
->setUrl('http://api.example.com/user/list/')
->setData(['ids' => '1,2,3,4']);
$request = Authenticator::authenticate($request, Authenticator::METHOD_GET, 'mycustomsecretkey');
$response = $request->send();
Authentication by POST param:
use yii\httpclient\Client;
use rob006\simpleauth\YiiAuthenticator as Authenticator;
$client = new Client();
$request = $client->createRequest()
->setUrl('http://api.example.com/user/list/?ids=1,2,3,4');
$request = Authenticator::authenticate($request, Authenticator::METHOD_POST);
$response = $request->send();