update README
This commit is contained in:
parent
d704ccf923
commit
f51d5c72ef
74
README.md
74
README.md
|
@ -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.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user