This includes details on which organization is being used by the current request
request.org={id:string,}
request.accountand request.org are both getters and setters and will trigger errors if accessed outside of instance.authorized()or instance.authenticated()directives.
export default function Route(instance) {
instance.authenticated();
instance.get('/your/route', handler);
async function handler (request) {
await request.can('read', 'projects');
reply.send('ONLY FOR SESSIONS WITH projects:read PERMISSION');
}
}
app/api/v1/your-route/index.ts
export default function Route(instance) {
instance.authorized();
instance.get('/your/route', handler);
async function handler (request) {
await request.verified();
reply.send('ONLY FOR AUTHENTICATED API KEYS');
}
}
app/api/v1/your-route/index.ts
export default function Route(instance) {
instance.authorized();
instance.get('/your/route', handler);
async function handler (request) {
await request.subscribed();
reply.send('ONLY FOR SUBSCRIBED ORGANIZATIONS');
}
}
app/api/v1/your-route/index.ts
export default function Route(instance) {
instance.get('/your/route', handler);
async function handler (request) {
return request.ua();
}
}
app/api/v1/your-route/index.ts
export default function Route(instance) {
instance.get('/your/route', handler);
async function handler (request, reply) {
await request.cache('custom-key');
// do some specific logic
reply.send('OK');
await reply.uncache('custom-key');
}
}