fix Authentication
This commit is contained in:
parent
0782ab0b1c
commit
0eb20a6ed1
|
@ -20,6 +20,7 @@
|
||||||
"meta-tech/pws-auth" : "~2.1",
|
"meta-tech/pws-auth" : "~2.1",
|
||||||
"meta-tech/silex-controller-service" : "~1.0",
|
"meta-tech/silex-controller-service" : "~1.0",
|
||||||
"silex/silex": "~2.0",
|
"silex/silex": "~2.0",
|
||||||
"gecko-packages/gecko-silex-config-service": "^2.0"
|
"gecko-packages/gecko-silex-config-service": "^2.0",
|
||||||
|
"symfony/security": "~3.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
7
config/db.yml.dist
Normal file
7
config/db.yml.dist
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
default :
|
||||||
|
driver : pdo_mysql
|
||||||
|
host : db
|
||||||
|
dbname : test
|
||||||
|
user : dev
|
||||||
|
password : mysql
|
||||||
|
charset : utf8
|
|
@ -1,5 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
namespace MetaTech\Core\Db;
|
namespace MetaTech\Db;
|
||||||
|
|
||||||
use PDO;
|
use PDO;
|
||||||
use MetaTech\Core\Singleton;
|
use MetaTech\Core\Singleton;
|
||||||
|
|
|
@ -31,6 +31,7 @@ class PdoWrapper
|
||||||
{
|
{
|
||||||
$this->profile = $profile;
|
$this->profile = $profile;
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
|
$this->switchDb($profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
@ -95,14 +95,22 @@ class Authentication
|
||||||
if ($this->authenticator->isValid($token)) {
|
if ($this->authenticator->isValid($token)) {
|
||||||
$login = $request->get('login');
|
$login = $request->get('login');
|
||||||
$password = $request->get('password');
|
$password = $request->get('password');
|
||||||
if ($done = $this->authenticator->check($token, $login)) {
|
if ($this->authenticator->check($token, $login)) {
|
||||||
if ($this->checkUser($login, $password, $token->getIdent())) {
|
try {
|
||||||
$sid = $this->onSuccess($token, $login);
|
if ($done = $this->checkUser($login, $password, $token->getIdent())) {
|
||||||
$msg = "authentication sucessful ! logged as $login";
|
$sid = $this->onSuccess($token, $login);
|
||||||
$data = compact('sid');
|
$msg = "authentication sucessful ! logged as $login";
|
||||||
|
$data = compact('sid');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(\Exception $e) {
|
||||||
|
$msg = 'invalid user or password';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!$done) {
|
||||||
|
sleep(3);
|
||||||
|
}
|
||||||
return new JsonResponse(compact('done', 'msg', 'data'), $done ? 200 : 401);
|
return new JsonResponse(compact('done', 'msg', 'data'), $done ? 200 : 401);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,23 +141,25 @@ class Authentication
|
||||||
public function check(Request $request)
|
public function check(Request $request)
|
||||||
{
|
{
|
||||||
if (!$this->isAllowedRoute($request->getPathInfo())) {
|
if (!$this->isAllowedRoute($request->getPathInfo())) {
|
||||||
$this->sessionInvalidate();
|
|
||||||
$done = false;
|
$done = false;
|
||||||
$msg = "authentication require";
|
$msg = "authentication require";
|
||||||
try {
|
try {
|
||||||
$token = $this->authenticator->getToken();
|
$token = $this->authenticator->getToken();
|
||||||
|
|
||||||
if ($this->authenticator->isValid($token)) {
|
if ($this->authenticator->isValid($token)) {
|
||||||
$sid = $this->authenticator->getSessionId($token);
|
if (!empty($sid = $this->authenticator->getSessionId($token))) {
|
||||||
$this->session->setId($sid);
|
|
||||||
$this->session->start();
|
|
||||||
$user = $this->session->get('user');
|
|
||||||
// done : lets controller takes hand
|
|
||||||
if (!is_null($user) && $user->key == $token->getIdent()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$this->sessionInvalidate();
|
$this->sessionInvalidate();
|
||||||
|
$this->session->setId($sid);
|
||||||
|
$this->session->start();
|
||||||
|
$user = $this->session->get('user');
|
||||||
|
$data = compact('user');
|
||||||
|
// done : lets controller takes hand
|
||||||
|
if (!is_null($user) && $user->key == $token->getIdent()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$this->sessionInvalidate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -157,7 +167,7 @@ class Authentication
|
||||||
$done = false;
|
$done = false;
|
||||||
$msg = $e->getMessage();
|
$msg = $e->getMessage();
|
||||||
}
|
}
|
||||||
return new JsonResponse(compact('done', 'msg'), 401);
|
return new JsonResponse(compact('done', 'msg', 'data'), 401);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user