Buen dia,
Por favor solicito de su colaboración ya que me ocurre algo raro en el control 
de excepcion de una function, los functions son los siguientes:
CREATE OR REPLACE FUNCTION public.verify(    IN token text,    IN secret text,  
  IN algorithm text DEFAULT 'HS256'::text)  RETURNS TABLE(header json, payload 
json, valid boolean) AS$BODY$  SELECT
    convert_from(public.url_decode(r[1]), 'utf8')::json AS header,    
convert_from(public.url_decode(r[2]), 'utf8')::json AS payload,    r[3] = 
public.algorithm_sign(r[1] || '.' || r[2], secret, algorithm) AS valid  FROM 
regexp_split_to_array(token, '\.') r;$BODY$
  LANGUAGE sql VOLATILE
  COST 100  ROWS 1000;ALTER FUNCTION public.verify(text, text, text)  OWNER TO 
postgres;

create or replace function logicanegocio.verificar_token(p_token character 
varying, curs refcursor) RETURNS void language plpgsql AS$$begin open curs for 
select header, payload  from verify(p_token, 'Uns3cr3t1c0') where valid = true; 
exception  when others then raise exception 'Token malformed'; 
end;$$;
Cuando envio una cadena erronea a drede, por ejemplo:  
select 
logicanegocio.verificar_token('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwabmFtZSI6InBlcGUgbG9xdWVuZG8ifQ.PV2EO5ovJ_4Uq8rOEyHEzhafRL82GvuCJFXaRCno5Tg',
 'cur'); fetch all in cur;
Me sale el siguiente mensaje de error:
ERROR:  sintaxis de entrada no válida para tipo jsonDETAIL:  El elemento «» no 
es válido.CONTEXT:  Datos JSON, línea 1: {"sub":"1",...función SQL «verify» en 
la sentencia 1
y deberia salir 'Token malformed'; 

Por favor que puede estar ocurriendo??
Gracias por su apoyo

Reply via email to