Ejemplo n.º 1
0
 public static function getJwt($uid = 1)
 {
     Auth::CreateJwtKey();
     $key = RedBeanPHP\R::load('jwt', 1);
     $jwt = Firebase\JWT\JWT::encode(array('exp' => time() + 60 * 90, 'uid' => $uid, 'mul' => 1), $key->secret);
     return $jwt;
 }
Ejemplo n.º 2
0
 static function authenticate($headers)
 {
     $jwt = "";
     foreach ($headers as $header => $value) {
         if ($header == "Authorization") {
             $head = explode(" ", $value);
             if (count($head) == 2) {
                 if ($head[0] == "Bearer") {
                     $jwt = $head[1];
                 }
             }
         }
     }
     if ($jwt == "") {
         return false;
     }
     try {
         $secretKey = base64_decode(Flight::get("jwtkey"));
         $token = Firebase\JWT\JWT::decode($jwt, $secretKey, array("HS512"));
         return $token;
     } catch (Exception $e) {
         return false;
     }
 }
Ejemplo n.º 3
0
     *
     * Nothing really special here. A simple snippet to check the license code.
     * It's simple to hack. But please consider supporting this project by
     * buying a license instead. Be awesome.
     *
     * Anyway, have fun using Copilot!
     *
     * Greets
     * Artur
     *
     */
    $license = ['type' => 'trial'];
    $code = (string) $this->app['copilot.license'];
    $data = [];
    try {
        $data = (array) Firebase\JWT\JWT::decode($code, 'copilot', ['HS256']);
    } catch (Exception $e) {
    }
    if (isset($data['name'], $data['company'], $data['created'], $data['email'], $data['type'])) {
        $license = $data;
        $license['code'] = $code;
    }
    return (object) $license;
}]);
// REST
if (COCKPIT_REST) {
    $app->on('cockpit.rest.init', function ($routes) {
        $routes['copilot'] = 'Copilot\\Controller\\RestApi';
    });
}
// ADMIN
 /**
  * Make the Jason API call to the backend via http
  */
 private function make_jason_http_request($data)
 {
     // use key 'http' even if you send the request to https://...
     $options = array('http' => array('header' => "Content-type: application/json\r\n", 'method' => 'POST', 'content' => json_encode($data)));
     $context = stream_context_create($options);
     $result = file_get_contents(get_option('api_uri'), false, $context);
     $keyArray = $this->get_key();
     // extract the key
     $modulus = $keyArray['keys'][0]['n'];
     $exponent = $keyArray['keys'][0]['e'];
     $rsa = new phpseclib\Crypt\RSA();
     $modulus = new \phpseclib\Math\BigInteger(Firebase\JWT\JWT::urlsafeB64Decode($modulus), 256);
     $exponent = new \phpseclib\Math\BigInteger(Firebase\JWT\JWT::urlsafeB64Decode($exponent), 256);
     $rsa->load(array('n' => $modulus, 'e' => $exponent));
     $rsa->setPublicKey();
     $pubKey = $rsa->getPublicKey();
     $decodedResult = $this->decode_jwt($result, $pubKey);
     return array($decodedResult, $result);
 }
 /**
  * Find a user record.
  *
  * @param string $username The token identifier.
  * @param string $password Unused password.
  * @return Mixed Either false on failure, or an array of user data.
  */
 public function _findUser($username, $password = null)
 {
     try {
         $decoded = Firebase\JWT\JWT::decode($username, Configure::read('Security.salt'), array('HS256'));
         return json_decode(json_encode($decoded), true);
     } catch (UnexpectedValueException $e) {
         return false;
     }
 }
Ejemplo n.º 6
0
// Register Entity Manager in the container
$container['entityManager'] = function () {
    $conf = parse_ini_file('../conf/conf.db.ini', true);
    $doctrineSettings = ['connection' => ['driver' => $conf['database']['driver'], 'host' => $conf['database']['host'], 'port' => isset($conf['database']['port']) ? $conf['database']['port'] : '3306', 'user' => $conf['database']['user'], 'password' => $conf['database']['password'], 'dbname' => $conf['database']['db'], 'charset' => 'utf8', 'memory' => true], 'annotation_paths' => ['../Entity/Users.php']];
    return EntityManagerBuilder::build($doctrineSettings);
};
$app->add(new \Slim\Middleware\JwtAuthentication(["path" => "/api", "secret" => "supersecretkeyyoushouldnotcommittogithub"]));
$app->get('/', function (Request $request, Response $response) {
    $result = $this->entityManager->createQueryBuilder()->select('user.email, user.password, user.token')->from('Users', 'user')->getQuery()->getArrayResult();
    return json_encode($result);
});
$app->get('/api', function (Request $request, Response $response) {
    getStats($request, $response);
});
$app->get('/login', function (Request $request, Response $response) {
    $result = Firebase\JWT\JWT::encode("ramdont0k3n", "supersecretkeyyoushouldnotcommittogithub");
    $body = $response->getBody();
    $body->write(json_encode($result));
    return $response;
});
$app->run();
function getStats($request, $response)
{
    //$response = $app->response;
    $response->withHeader('Access-Control-Allow-Origin', '*');
    $response->withHeader('Access-Control-Allow-Headers', 'Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With');
    $response->withHeader('Access-Control-Allow-Credentials', 'true');
    $response->withHeader('Cache-Control', 'no-cache');
    $response->withHeader('Content-Type', 'application/json; charset=utf-8');
    $result = array(array('producto' => 'maxideli', 'version' => '3.0', 'icon' => 'base64', 'activo' => 1, 'estilos' => array('ancho' => 1, 'orden' => 1), 'actualizado' => 1, 'tabs' => array(array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('totales' => array('total' => 120)))), array('producto' => 'maxipad', 'version' => '2.0', 'icon' => 'base64', 'activo' => 1, 'estilos' => array('ancho' => 1, 'orden' => 1), 'actualizado' => 1, 'tabs' => array(array('dispositivos' => array(array('id' => 123, 'nombre' => 'dispositivo 1'), array('id' => 456, 'nombre' => 'dispositivo 2'))))), array('producto' => 'maxikds', 'version' => '1.0', 'icon' => 'base64', 'activo' => 1, 'estilos' => array('ancho' => 1, 'orden' => 1), 'actualizado' => 1, 'tabs' => array(array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('totales' => array('total' => 120)))), array('producto' => 'reservas', 'version' => '1.0', 'icon' => 'base64', 'activo' => 1, 'estilos' => array('ancho' => 1, 'orden' => 1), 'actualizado' => 0, 'tabs' => array(array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('totales' => array('total' => 120)))), array('producto' => 'menuweb', 'version' => '1.0', 'icon' => 'base64', 'activo' => 1, 'estilos' => array('ancho' => 1, 'orden' => 1), 'actualizado' => 1, 'tabs' => array(array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('totales' => array('total' => 120)))), array('producto' => 'maxideli', 'version' => '3.0', 'icon' => 'base64', 'activo' => 1, 'estilos' => array('ancho' => 1, 'orden' => 1), 'actualizado' => 1, 'tabs' => array(array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('totales' => array('total' => 120)))), array('producto' => 'maxideli', 'version' => '3.0', 'icon' => 'base64', 'activo' => 1, 'estilos' => array('ancho' => 1, 'orden' => 1), 'actualizado' => 1, 'tabs' => array(array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('totales' => array('total' => 120)))), array('producto' => 'menuweb', 'version' => '1.0', 'icon' => 'base64', 'activo' => 1, 'estilos' => array('ancho' => 1, 'orden' => 1), 'actualizado' => 1, 'tabs' => array(array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('monitor' => array('pendientes' => 254, 'elaboracion' => 1542, 'entregados' => 145, 'postdatados' => 20)), array('totales' => array('total' => 120)))), array('producto' => 'clientes', 'activo' => 1, 'estilos' => array('ancho' => 1, 'orden' => 1), 'administracion' => array(array('facturas_pendientes' => 1, 'vencimiento' => '25/05/2015')), 'capacitaciones' => array(), 'soporte' => array()), array('producto' => 'notificaciones', 'activo' => 1, 'estilos' => array('ancho' => 1, 'orden' => 1), 'notificaciones' => array(array('id' => 1, 'notificacion' => 'notificacion 1'), array('id' => 2, 'notificacion' => 'notificacion 2'), array('id' => 3, 'notificacion' => 'notificacion 3'))), array('producto' => 'usuarios', 'activo' => 1, 'estilos' => array('ancho' => 1, 'orden' => 1), 'notificaciones' => array(array('id' => 1, 'nombre' => 'usuario 1'), array('id' => 2, 'nombre' => 'usuario 2'), array('id' => 3, 'nombre' => 'usuario 3'))));
    $body = $response->getBody();