|
|
@@ -432,13 +432,13 @@ verify_claims(Claims, VerifyClaims0) ->
|
|
|
Now = os:system_time(seconds),
|
|
|
VerifyClaims =
|
|
|
[
|
|
|
- {<<"exp">>, required, fun(ExpireTime) ->
|
|
|
+ {<<"exp">>, fun(ExpireTime) ->
|
|
|
is_integer(ExpireTime) andalso Now < ExpireTime
|
|
|
end},
|
|
|
- {<<"iat">>, optional, fun(IssueAt) ->
|
|
|
+ {<<"iat">>, fun(IssueAt) ->
|
|
|
is_integer(IssueAt) andalso IssueAt =< Now
|
|
|
end},
|
|
|
- {<<"nbf">>, optional, fun(NotBefore) ->
|
|
|
+ {<<"nbf">>, fun(NotBefore) ->
|
|
|
is_integer(NotBefore) andalso NotBefore =< Now
|
|
|
end}
|
|
|
] ++ VerifyClaims0,
|
|
|
@@ -468,13 +468,11 @@ try_convert_to_int(Claims, []) ->
|
|
|
|
|
|
do_verify_claims(_Claims, []) ->
|
|
|
ok;
|
|
|
-do_verify_claims(Claims, [{Name, Required, Fun} | More]) when is_function(Fun) ->
|
|
|
- case {Required, maps:take(Name, Claims)} of
|
|
|
- {optional, error} ->
|
|
|
+do_verify_claims(Claims, [{Name, Fun} | More]) when is_function(Fun) ->
|
|
|
+ case maps:take(Name, Claims) of
|
|
|
+ error ->
|
|
|
do_verify_claims(Claims, More);
|
|
|
- {required, error} ->
|
|
|
- {error, {missing_claim, Name}};
|
|
|
- {_, {Value, NClaims}} ->
|
|
|
+ {Value, NClaims} ->
|
|
|
case Fun(Value) of
|
|
|
true ->
|
|
|
do_verify_claims(NClaims, More);
|