Jwt 函数符号(json,未知)不存在

Jwt 函数符号(json,未知)不存在,jwt,postgrest,Jwt,Postgrest,我正在学习有关的教程 我创建了这个函数: create or replace function login(email text, pass text) returns basic_auth.jwt_token language plpgsql as $$ declare _role name; result basic_auth.jwt_token; begin -- check email and password select basic_auth.user_rol

我正在学习有关的教程

我创建了这个函数:

create or replace function
login(email text, pass text) returns basic_auth.jwt_token
  language plpgsql
  as $$
declare
  _role name;
  result basic_auth.jwt_token;
begin
  -- check email and password
  select basic_auth.user_role(email, pass) into _role;
  if _role is null then
    raise invalid_password using message = 'invalid user or password';
  end if;

  select sign(
      row_to_json(r), 'reallyreallyreallyreallyverysafe'
    ) as token
    from (
      select _role as role, login.email as email,
         extract(epoch from now())::integer + 60*60 as exp
    ) r
    into result;
  return result;
end;
$$;
当我尝试执行登录请求时,会收到以下错误消息:

{ “提示”:“没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。”, “详细信息”:空, “代码”:“42883”, “消息”:“函数public.sign(json,未知)不存在”}


我在教程的任何地方都没有看到签名功能,有人知道这里发生了什么吗?

签名功能是在安装时创建的

此外,请确保在包含在您的(导入的模式列表)中的模式上安装扩展。这可以通过使用模式public创建扩展pgjwt来指定


PostgREST默认情况下在
搜索路径
上添加
公共
架构,因此扩展不需要额外配置就可以工作。

安装时会创建
签名
功能。正确,我以为pgjwt安装正确,但没有。很好!我将添加一个详细的答案。