update README

This commit is contained in:
a-sansara 2017-03-16 01:58:14 +01:00
parent d704ccf923
commit f51d5c72ef

View File

@ -23,20 +23,23 @@ Or add the package to your `composer.json`.
``` ```
"require": { "require": {
"meta-tech/pws-server" : "~1.0" "meta-tech/pws-server" : "^1.0"
} }
``` ```
## Usage ### Usage
managing controllers & routing in application see [ MetaTech\Silex\Provider\ControllerServiceProvider ](https://github.com/meta-tech/silex-controller-service)
cf [ MetaTech\Silex\Provider\ControllerServiceProvider ](https://github.com/meta-tech/silex-controller-service) to managing controllers & routing in application
```php ```php
namespace MetaTech\PwsServer; namespace MetaTech\PwsServer;
use MetaTech\Silex\Application as App; use MetaTech\Silex\Application as App;
use MetaTech\Silex\Provider\ControllerServiceProvider as CtrlProvider; use MetaTech\Silex\Provider\ControllerServiceProvider as CtrlProvider;
use MetaTech\Silex\Provider\UserProvider;
use MetaTech\Db\PdoWrapper;
use MetaTech\Db\Profile;
use MetaTech\PwsAuth\Authenticator; use MetaTech\PwsAuth\Authenticator;
use MetaTech\PwsServer\Ctrl\Test; use MetaTech\PwsServer\Ctrl\Test;
use MetaTech\PwsServer\Ctrl\WebService; use MetaTech\PwsServer\Ctrl\WebService;
@ -54,6 +57,12 @@ class Application extends App
$app['ws.authenticator'] = function ($app) { $app['ws.authenticator'] = function ($app) {
return new Authenticator($app['config']['pwsauth']); return new Authenticator($app['config']['pwsauth']);
}; };
$app['pdo'] = function ($app) {
return new PdoWrapper(new Profile($app['config']['db']['default']));
};
$app['user.provider'] = function ($app) {
return new UserProvider($app['pdo']);
};
} }
/*! /*!
@ -72,11 +81,9 @@ class Application extends App
Controller example : Controller example :
```php ```php
<?php
use Silex\ControllerCollection; use Silex\ControllerCollection;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use MetaTech\Silex\Ws\Controller; use MetaTech\PwsServer\Ws\Controller;
class WebService extends Controller class WebService extends Controller
{ {
@ -99,10 +106,52 @@ class WebService extends Controller
} }
``` ```
Authentication mecanism is already provided by the `MetaTech\Silex\Ws\Controller` parent class check `OtherWebService` to see another controller and deep routes inside rooting /ws entry point.
& the `MetaTech\Silex\Ws\Authentication` handler (in meta-tech/silex-core package) (the main différence consist in no calling the parent routing method)
See OtherWebService to see another controller and deep routes inside rooting /ws entry point `pwsAuth` Authentication mecanism is already provided by the `MetaTech\Silex\Ws\Controller` parent class
& the `MetaTech\Silex\Ws\Authentication` handler (in [ meta-tech/silex-core](https://github.com/meta-tech/silex-core) package)
The project now implement the `checkUser` method via a `userProvider`
It use a `MetaTech\Silex\Ws\Authentication` and `MetaTech\Silex\Ws\Controller` subclasses :
```php
namespace MetaTech\PwsServer\Ws;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface;
use MetaTech\PwsAuth\Authenticator;
use MetaTech\Silex\Ws\Authentication as BaseAuthentication;
use MetaTech\Silex\Provider\UserProvider;
class Authentication extends BaseAuthentication
{
protected $userProvider;
public function __construct(Session $session, Authenticator $authenticator, PasswordEncoderInterface $passEncoder = null, UserProvider $userProvider)
{
parent::__construct($session, $authenticator, $passEncoder);
$this->userProvider = $userProvider;
}
public function checkUser($login, $password, $key, PasswordEncoderInterface $passEncoder = null)
{
$done = false;
try {
if (!is_null($passEncoder)) {
$user = $this->userProvider->loadUserByUsername($login);
$salt = $this->authenticator->getUserSalt($login);
$done = $user->key == $key && $passEncoder->encodePassword($password, $salt) == $user->getPassword();
}
}
catch(\Exception $e) {
//~ var_dump($e->getTraceAsString());
}
return $done;
}
}
```
### Test uris : ### Test uris :
@ -119,11 +168,6 @@ access through pws-client :
* servername/ws/isauth * servername/ws/isauth
### @todo
subclassing `MetaTech\Silex\Ws\Authentication` to give checkUser db implementation example
### License ### License
The project is released under the MIT license, see the LICENSE file. The project is released under the MIT license, see the LICENSE file.