%%%-------------------------------------------------------------------
%% @doc Behaviour to cache introspection / userinfo requests
%%
%%
Usage
%%
%%
%% - Userinfo - See {@link oidcc_cowboy_load_userinfo:opts()} / `cache'
%% - Introspection - See {@link oidcc_cowboy_introspect_token:opts()} /
%% `cache'
%%
%% @end
%% @since 2.0.0
%%%-------------------------------------------------------------------
-module(oidcc_cowboy_cache).
-export_type([t/0]).
-type t() :: module().
-callback get
(Type :: userinfo, Token :: binary(), Req :: cowboy_req:req(), Env :: cowboy_middleware:env()) ->
{ok, oidcc_jwt_util:claims()} | miss;
(
Type :: introspection,
Token :: binary(),
Req :: cowboy_req:req(),
Env :: cowboy_middleware:env()
) -> {ok, oidcc_token_introspection:t()} | miss.
-callback put
(
Type :: userinfo,
Token :: binary(),
Data :: oidcc_jwt_util:claims(),
Req :: cowboy_req:req(),
Env :: cowboy_middleware:env()
) ->
ok;
(
Type :: introspection,
Token :: binary(),
Data :: oidcc_token_introspection:t(),
Req :: cowboy_req:req(),
Env :: cowboy_middleware:env()
) -> ok.