Using Pgsettings and Pgjwttypeidentifier together
Hello.. I am stuck with a scenario where I use Postgraphile as a library for two applications  - one which generates the JWT token through postgraphile and runs queries using the generated token and the second which uses a token generated by Keycloak(an IDP) and then uses Postgraphile's JWT Verification against Keycloak to validate the JWT and then connects to Postgres. I have a server.js file that takes in an appid from the request header to decide whether the JWT Verification against keycloak is required or not. The code is attached here. However, for some reason pgsettings and pgjwttypeidentifier/pgjwtsecret do not go hand in hand. Is there a possible workaround for this. Please help.

```javascript
const express = require("express");
const { postgraphile } = require("postgraphile");
const app = express();
const jwt = require("express-jwt");
const jwksRsa = require("jwks-rsa");
const cors = require('cors');

const fs = require("fs");
const path = require("path");
const ConnectionFilterPlugin = require("postgraphile-plugin-connection-filter");
const PgSimplifyInflectorPlugin = require("@graphile-contrib/pg-simplify-inflector");
const PostGraphileUploadFieldPlugin = require("postgraphile-plugin-upload-field");
const { graphqlUploadExpress } = require("graphql-upload");

require('dotenv').config();
app.use(function (req, res, next) {
  next();
});

const UPLOAD_DIR_NAME = "shield/src/uploads";
app.use(cors())
app.use(`/${UPLOAD_DIR_NAME}`, express.static(path.resolve(UPLOAD_DIR_NAME)));

app.use(graphqlUploadExpress());
const checkJwt = jwt({
  secret: jwksRsa.expressJwtSecret({
    cache: true,
    rateLimit: false,
    jwksRequestsPerMinute: 5,
    jwksUri: process.env.JWKS_URI,
  }),
  aud: process.env.KEYCLOAK_CLIENT_ID,
  iss: process.env.ISSUER,
  algorithms: ["RS256"],
});
app.use("/shield/graphql", (req, res, next) => {
  const appid = req.headers['appid'];
  if (appid == "1") {
    const options = {
      secret: jwksRsa.expressJwtSecret({
        cache: true,
        rateLimit: false,
        jwksRequestsPerMinute: 5,
        jwksUri: process.env.JWKS_URI,
      }),
      aud: process.env.KEYCLOAK_CLIENT_ID,
      iss: process.env.ISSUER,
      algorithms: ["RS256"],
    };
    return jwt(options)(req, res, next);
  } else {
    console.log("appid in else" + appid);
    next();
  }
});

app.use(
  postgraphile(
    process.env.DATABASE_URL,
    process.env.SCHEMA.split(','),
    {
      pgSettings(req) {
        const settings = {};
        const authStrategy = req.headers['auth-strategy'];
        const appid = req.headers['appid'];
        switch (authStrategy) {
          case 'next':
            settings["role"] = req.user.resource_access[process.env.KEYCLOAK_CLIENT_ID].roles[0];
            settings["jwt.email"] = req.user.email;
            settings["jwt.auth-strategy"] = authStrategy;
            if (req.user.groups != null) {
              settings["jwt.grouporg"] = req.user.groups[0];
            }
            break;
          default:
        }
        return settings;
      },
      jwtSecret: "pgdcpsecurewebtokenpgdcpsecurewebtoken",
      jwtPgTypeIdentifier: "dcp_lib.jwt_token_postgraphile",
      graphqlRoute: "/shield/graphql",
      graphiqlRoute: "/shield/graphiql",
      ownerConnectionString: process.env.OWNER_CONNECTION_STRING,
      watchPg: true,
      showErrorStack: true,
      extendedErrors: ['hint', 'detail', 'errcode'],
      graphiql: true,
      enhanceGraphiql: true,
      enableCors: true, // for contact orchestrator testing seting to  true, needs to change to false;
      disableWarning: true,
      appendPlugins: [PgSimplifyInflectorPlugin, ConnectionFilterPlugin, PostGraphileUploadFieldPlugin],
      bodySizeLimit: "4MB",
      graphileBuildOptions: {
        pgOmitListSuffix: false,
        pgSimpleCollections: 'both',
        uploadFieldDefinitions: [{
          match: ({ column }) => column === "file_name",
          resolve: resolveUpload,
        }],
      },

    }
  )
);
```