예제 #1
0
<?php

$app->map(['GET', 'POST'], '/users/login', function ($request, $response, $args) {
    $field_errors = [];
    $flash_messages = $this->flash->getMessages();
    $user = [];
    if ($request->isPost()) {
        $userService = new AuthService();
        $user['user_name'] = filter_var($_POST['user_name'], FILTER_SANITIZE_STRING);
        $user['password'] = filter_var($_POST['password'], FILTER_SANITIZE_STRING);
        $user_form = validateLoginForm($user);
        if ($user_form['is_valid']) {
            $valid_user = $userService->authenticateUser($user['user_name'], $user['password']);
            if ($valid_user) {
                $_SESSION['user_id'] = $valid_user['user_id'];
                $this->flash->addMessage('success', 'Login successful');
                return $response->withRedirect($this->router->pathFor('docs-home'));
            } else {
                $flash_messages['danger'][] = "Incorrect combination of username/email AND password - Please try again";
            }
        } else {
            $field_errors = $user_form['has_errors'];
        }
    }
    return $this->view->render($response, 'forms/login.twig', ['user' => $user, 'flash_messages' => $flash_messages, 'errors' => $field_errors, 'userLogged' => isset($_SESSION['user_id']), 'csrf' => ['name' => $request->getAttribute('csrf_name'), 'value' => $request->getAttribute('csrf_value')]]);
})->setName('login');
$app->map(['GET', 'POST'], '/users/register', function ($request, $response, $args) {
    $field_errors = [];
    $user = [];
    $flash_messages = $this->flash->getMessages();
    if ($request->isPost()) {