Skip to content

Instantly share code, notes, and snippets.

@iampeterbanjo
Created September 20, 2019 05:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iampeterbanjo/9e497349c39f120bad6b301546307133 to your computer and use it in GitHub Desktop.
Save iampeterbanjo/9e497349c39f120bad6b301546307133 to your computer and use it in GitHub Desktop.
// plugin.ts
import bell from '@hapi/bell';
import cookie from '@hapi/cookie';
import doorkeeper from 'hapi-doorkeeper';
import utils from '../utils';
const {
vars: {
SESSION_SECRET_KEY,
AUTH0_DOMAIN,
AUTH0_PUBLIC_KEY,
AUTH0_SECRET_KEY,
},
} = utils;
export default {
name: 'security',
version: '1.0.0',
register: async server => {
await server.register([
bell,
cookie,
{
plugin: doorkeeper,
options: {
sessionSecretKey: SESSION_SECRET_KEY,
auth0Domain: AUTH0_DOMAIN,
auth0PublicKey: AUTH0_PUBLIC_KEY,
auth0SecretKey: AUTH0_SECRET_KEY,
},
},
]);
},
};
// controller.ts
import * as routes from './routes';
export const handleScheduleJobs = () => {
const { method, url } = routes.get_jobs();
return {
method,
path: url,
config: {
auth: {
strategy: 'session',
mode: 'required',
},
},
handler: (request, reply) => 'OK',
};
};
/*
ERROR
{ ValidationError: "cookie" must be of type object
at Object.<anonymous>.exports.process (/home/iampeterbanjo/clever-cloud/iampeterbanjo.com/packages/server/node_modules/@hapi/cookie/node_modules/@hapi/joi/lib/errors.js:183:16)
at Object.<anonymous>.internals.entry (/home/iampeterbanjo/clever-cloud/iampeterbanjo.com/packages/server/node_modules/@hapi/cookie/node_modules/@hapi/joi/lib/validator.js:139:26)
at Object.<anonymous>.exports.entry (/home/iampeterbanjo/clever-cloud/iampeterbanjo.com/packages/server/node_modules/@hapi/cookie/node_modules/@hapi/joi/lib/validator.js:25:30)
at Object.<anonymous>.internals.Base.validate (/home/iampeterbanjo/clever-cloud/iampeterbanjo.com/packages/server/node_modules/@hapi/cookie/node_modules/@hapi/joi/lib/base.js:531:26)
at Object.<anonymous>.internals.assert (/home/iampeterbanjo/clever-cloud/iampeterbanjo.com/packages/server/node_modules/@hapi/cookie/node_modules/@hapi/joi/lib/index.js:210:27)
at Object.attempt (/home/iampeterbanjo/clever-cloud/iampeterbanjo.com/packages/server/node_modules/@hapi/cookie/node_modules/@hapi/joi/lib/index.js:100:26)
at Object.<anonymous>.internals.implementation [as cookie] (/home/iampeterbanjo/clever-cloud/iampeterbanjo.com/packages/server/node_modules/@hapi/cookie/lib/index.js:112:26)
at Object.<anonymous>.module.exports.internals.Auth._strategy (/home/iampeterbanjo/clever-cloud/iampeterbanjo.com/packages/server/node_modules/@hapi/hapi/lib/auth.js:47:47)
at Object.register (/home/iampeterbanjo/clever-cloud/iampeterbanjo.com/packages/server/node_modules/hapi-doorkeeper/index.js:31:17)
at Object.<anonymous>.internals.Server.register (/home/iampeterbanjo/clever-cloud/iampeterbanjo.com/packages/server/node_modules/@hapi/hapi/lib/server.js:453:35)
at process._tickCallback (internal/process/next_tick.js:68:7)
_original:
{ validateFunc: undefined,
password: 'xxxxx',
cookie: 'sid', // <------ is this the problem??
redirectTo: [Function: redirectTo],
appendNext: true,
clearInvalid: true,
isHttpOnly: true,
isSecure: true,
isSameSite: 'Lax' },
details:
[ { message: '"cookie" must be of type object',
path: [Array],
type: 'object.base',
context: [Object] } ] }
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment