1
0

Added redirects and middleware classes for login

This commit is contained in:
2017-03-26 16:07:10 +02:00
parent 40d3ec9052
commit 014adeed65
7 changed files with 88 additions and 35 deletions

View File

@ -51,4 +51,9 @@ class Authorization
{
return $this->getUserID() !== null;
}
public function logout()
{
unset($_SESSION['userid']);
}
}

View File

@ -0,0 +1,34 @@
<?php
/**
* Informatica Eindproject D4p
* 6in3, Stedelijk Gymnasium Nijmegen
* Docent: Hans de Wolf
*
* ==================
*
* Daniel Boutros,
* Christiaan Goossens,
* Jelmer Hinssen
*/
namespace Inforbank\Application\Auth;
use Inforbank\Application;
use Inforbank\Application\Helper\Redirect;
class Middleware
{
public function __invoke($request, $response, $next)
{
$container = Application::getContainer();
// Check for an existing session
if ($container->auth->isUserAuthenticated()) {
return $next($request, $response);
} else {
// Redirect to the login page
return Redirect::create($response, '/login');
}
}
}

View File

@ -0,0 +1,35 @@
<?php
/**
* Informatica Eindproject D4p
* 6in3, Stedelijk Gymnasium Nijmegen
* Docent: Hans de Wolf
*
* ==================
*
* Daniel Boutros,
* Christiaan Goossens,
* Jelmer Hinssen
*/
namespace Inforbank\Application\Helper;
class Redirect
{
public static function create($response, $path)
{
$response = $response->withStatus(302);
$response = $response->withHeader('Location', Redirect::getBasepath() . $path);
return $response;
}
private static function getBasepath()
{
if (isset($_SERVER['HTTPS'])) {
$protocol = ($_SERVER['HTTPS'] && $_SERVER['HTTPS'] != "off") ? "https" : "http";
} else {
$protocol = 'http';
}
return $protocol . "://" . $_SERVER['HTTP_HOST'];
}
}

View File

@ -15,6 +15,7 @@
namespace Inforbank\Application;
use \Slim\App;
use Inforbank\Application\Helper\Redirect;
class Login
{
@ -24,6 +25,7 @@ class Login
// Render index view
return $this->renderer->render($response, 'login.phtml', $args);
});
$app->post('/login', function ($request, $response, $args) {
// Render index view
$post = $request->getParsedBody();
@ -32,15 +34,18 @@ class Login
$resp = $this->auth->login($post['rekeningnr'], $post['pascode']);
if ($resp) {
echo "HIER EEN REDIRECT GRAAG";
return Redirect::create($response, '/');
} else {
echo "ERR PASS!";
return Redirect::create($response, '/login?error');
}
} catch (\Exception $e) {
echo "ERR REK!";
return Redirect::create($response, '/login?error');
}
});
die();
$app->get('/logout', function ($request, $response, $args) {
$this->auth->logout();
return Redirect::create($response, '/login');
});
}
}

View File

@ -32,9 +32,9 @@ class Main
public function __construct(App $app)
{
// Add the default view routes
$app->get('/[{name}]', function ($request, $response, $args) {
$app->get('/', function ($request, $response, $args) {
// Render index view
return $this->renderer->render($response, 'index.phtml', $args);
});
})->add(new Auth\Middleware());
}
}