login.php 917 B

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