login.php 1000 B

123456789101112131415161718192021222324252627
  1. <?php
  2. require_once "{$_SERVER['DOCUMENT_ROOT']}/dependencies.php";
  3. // Define your username and password
  4. if (
  5. (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) or (
  6. $db->querySingle("SELECT auth.login(:username, :password)", [
  7. 'username' => $_SERVER['PHP_AUTH_USER'],
  8. 'password' => $_SERVER['PHP_AUTH_PW']
  9. ])['login'] === false AND $db->where('username', $_SERVER['PHP_AUTH_USER'])->has('auth.usuario')
  10. )
  11. ) {
  12. header('WWW-Authenticate: Basic realm="Moodle"');
  13. header('HTTP/1.0 401 Unauthorized');
  14. echo 'Acceso no autorizado';
  15. exit;
  16. } else {
  17. $token = $db->querySingle("SELECT sign(('{\"exp\":' || EXTRACT(EPOCH FROM NOW() + INTERVAL'1 day') || ', \"role\": \"app_user\"}')::JSON, '{$_ENV['KEY_ENCRYPT']}') as token");
  18. $_SESSION['user'] = [
  19. 'id' => 1,
  20. 'name' => 'Ángel Alfonso',
  21. ];
  22. header('Content-Type: application/json');
  23. echo json_encode($token);
  24. }