create or replace function public.custom_access_token_hook(event jsonb)
returns jsonb
language plpgsql
as $$
declare
original_claims jsonb;
new_claims jsonb;
claim text;
begin
original_claims = event->'claims';
new_claims = '{}'::jsonb;
foreach claim in array array[
-- add claims you want to keep here
'iss',
'aud',
'exp',
'iat',
'sub',
'role',
'aal',
'session_id',
'email',
'phone',
'is_anonymous'
] loop
if original_claims ? claim then
-- original_claims contains one of the listed claims, set it on new_claims
new_claims = jsonb_set(new_claims, array[claim], original_claims->claim);
end if;
end loop;
-- Add custom test claims
new_claims = jsonb_set(new_claims, array['test'], '"hook_working"');
new_claims = jsonb_set(new_claims, array['admin'], 'true');
new_claims = jsonb_set(new_claims, array['roles'], '["admin", "user"]');
return jsonb_build_object('claims', new_claims);
end
$$;
create or replace function public.custom_access_token_hook(event jsonb)
returns jsonb
language plpgsql
as $$
declare
original_claims jsonb;
new_claims jsonb;
claim text;
begin
original_claims = event->'claims';
new_claims = '{}'::jsonb;
foreach claim in array array[
-- add claims you want to keep here
'iss',
'aud',
'exp',
'iat',
'sub',
'role',
'aal',
'session_id',
'email',
'phone',
'is_anonymous'
] loop
if original_claims ? claim then
-- original_claims contains one of the listed claims, set it on new_claims
new_claims = jsonb_set(new_claims, array[claim], original_claims->claim);
end if;
end loop;
-- Add custom test claims
new_claims = jsonb_set(new_claims, array['test'], '"hook_working"');
new_claims = jsonb_set(new_claims, array['admin'], 'true');
new_claims = jsonb_set(new_claims, array['roles'], '["admin", "user"]');
return jsonb_build_object('claims', new_claims);
end
$$;