Un foro de discusión para nuestra comunidad de hispano hablante
By alfonsotesys
#788560
Buen dia, espero me puedan apoyar, tengo en un mismo servior processmaker y una plaicacion web

http://www.miportal/processmaker
http://www.miportal/reportes

que basicamente son paginas web de reportes, la idea es que si me logueo en processmaker
http://www.miportal/processmaker
con su respectivo usuario y contraseña, sin serrar session en el mismo navegador abra en otra pestaña
http://www.miportal/reportes
y no me pida ni usuario ni contraseña ya que ya esta logueado con processmaker, pero si no me e logueado con processmaker o desde procesmaker, entonces si me pida mi usuario y contraseña de processmaker.

ya intente ver si se crea alguna session o cookke en o algo que me diga que ya esta logueado pero no e dado con el resultado.

espero me puedan apoyar y epsero haberme dado a entender.

saludos y desde ya muchas gracias por el apoyo,
alguna manera de enviar o algún parámetro que en la otra pagina pueda recibir y validar que esta logueado?
User avatar
By amosbatto
#788632
Puedes chequear si USER_LOGGED es definido en la variable del $_SESSION de PHP. Si es definido, puedes buscar en wf_WORKSPACE.OAUTH_ACCESS_TOKENS.EXPIRES en la base de datos si la session ha expirado.
Code: Select all
if (isset($_SESSION['USER_LOGGED'])) {
   $pmUserId = $_SESSION['USER_LOGGED'];
   //Get autogenerated username and password for wf_{WORKSPACE} database in shared/sites/{WORKSPACE}/db.php
   $mysqlUser = 'XXXXXXXXXXX';
   $mysqlPass = 'XXXXXXXXXXXX';
   $db = 'wf_workflow';
   $mysqli = new mysqli('127.0.0.1', $mysqlUser, $mysqlPass, $db);
   if ($mysqli->connect_errno) {
       die("Unable to connect to DB.".
            "\nError #: " . $mysqli->connect_errno .
            "\nError: " . $mysqli->connect_error );
   }
   $sql = "SELECT ACCESS_TOKEN, EXPIRES FROM OAUTH_ACCESS_TOKENS WHERE USER_ID='$pmUserId' 
      ORDER BY EXPIRES DESC";

   if (!$result = $mysqli->query($sql)) {
      die("Sorry, the website is experiencing problems.");
   }
   if ($result->num_rows === 0) {
      // no access tokens for user, so redirect to login screen
      header("Location: http://example.com/sys$workspace/en/neoclassic/login/login");
      die;
   }
   $aRow = $result->fetch_assoc();
   $currentDate = date("Y-m-d H:i:s");
   
   if ($currentDate > $aRow['EXPIRES']) {
      //session has expired, so redirect to login screen:
      header("Location: http://example.com/sys$workspace/en/neoclassic/login/login");
      die;
   }

   //valid PM session so put code here to show reports
}
else {
   //change to address of your server:
   header("Location: http://example.com/sysworkflow/en/neoclassic/login/login");
   die;
} 
No he probado este codigo, pero esta es la idea.
By alfonsotesys
#788710
amosbatto wrote:Puedes chequear si USER_LOGGED es definido en la variable del $_SESSION de PHP. Si es definido, puedes buscar en wf_WORKSPACE.OAUTH_ACCESS_TOKENS.EXPIRES en la base de datos si la session ha expirado.
Code: Select all
if (isset($_SESSION['USER_LOGGED']) {
   $pmUserId = $_SESSION['USER_LOGGED'];
   //Get autogenerated username and password for wf_{WORKSPACE} database in shared/sites/{WORKSPACE}/db.php
   $mysqlUser = 'XXXXXXXXXXX';
   $mysqlPass = 'XXXXXXXXXXXX';
   $db = 'wf_workflow';
   $mysqli = new mysqli('127.0.0.1', $mysqlUser, $mysqlPass, $db);
   if ($mysqli->connect_errno) {
       die("Unable to connect to DB.".
            "\nError #: " . $mysqli->connect_errno .
            "\nError: " . $mysqli->connect_error );
   }
   $sql = "SELECT ACCESS_TOKEN, EXPIRES FROM OAUTH_ACCESS_TOKENS WHERE USER_ID='$pmUserId' 
      ORDER BY EXPIRES DESC";

   if (!$result = $mysqli->query($sql)) {
      die("Sorry, the website is experiencing problems.");
   }
   if ($result->num_rows === 0) {
      // no access tokens for user, so redirect to login screen
      header("Location: http://example.com/sys$workspace/en/neoclassic/login/login");
      die;
   }
   $aRow = $result->fetch_assoc();
   $currentDate = date("Y-m-d H:i:s");
   
   if ($currentDate > $aRow['EXPIRES']) {
      //session has expired, so redirect to login screen:
      header("Location: http://example.com/sys$workspace/en/neoclassic/login/login");
      die;
   }

   //valid PM session so put code here to show reports
}
No he probado este codigo, pero esta es la idea.

gracias por el aporte lo revisare y vere que tal funciona.

Saludos y gracias

AI bot development involves creating intelligent b[…]

AI bot development encompasses creating intelligen[…]

A stake clone script is a pre-coded solution desig[…]

The bet365 clone script offers a ready-made soluti[…]