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