{ token.valid now := time.now_ns() / 1000000000 token.payload.nbf <= now now < token.payload.exp } action_allowed if { http.method == "GET" token.payload.role == "guest" glob.match("/people/*", ["/"], http.path) } action_allowed if { http.method == "POST" token.payload.role == "admin" glob.match("/people", ["/"], http.path) lower(input.parsed_body.firstname) != base64url.decode(token.payload.sub) } token := {"valid": valid, "payload": payload} if { [_, encoded] := split(http.headers.authorization, " ") [valid, _, payload] := io.jwt.decode_verify(encoded, {"secret": "secret"}) } (1) is_token_valid と action_allowed の両方が成立した場合通信を許可
 (2) JWTのnbf & expを検証
 (3) 「メソッドがGET」
 「JWTのroleが “guest”」
 「パスが “/people/*”」
 の全てに合致したらOK
 (4) 「メソッドがPOST」
 「JWTのroleが “admin”」
 「パスが “/people”」
 の全てに合致したらOK
 (5) JWTのデコードと検証