UNPKG

insomnia-plugin-laravel-csrf

Version:

The insomnia plugin for setting X-XSRF-TOKEN header in request from XSRF-TOKEN cookie in laravel applications.

46 lines (36 loc) 1.41 kB
module.exports.templateTags = [{ name: 'laravel_csrf', displayName: 'Laravel CSRF', description: 'Apply XSRF-TOKEN from cookie for X-XSRF-TOKEN request header', args: [ { displayName: 'CSRF Cookie Name', type: 'string', defaultValue: 'XSRF-TOKEN', placeholder: 'It is "XSRF-TOKEN" by default in laravel', } ], async run(context, cookieName = 'XSRF-TOKEN') { const cookieJar = await this.getCookieJar(context); const token = cookieJar.cookies?.find(cookie => cookie.key === cookieName); if (token === undefined) { throw new Error(`${cookieName} not found in cookies`); } return decodeURIComponent(token.value); }, async getCookieJar(context) { const { meta } = context; if (!meta.requestId || !meta.workspaceId) { throw new Error(`Request ID or workspace ID not found`); } const workspace = await context.util.models.workspace.getById(meta.workspaceId); if (!workspace) { throw new Error(`Workspace not found for ${meta.workspaceId}`); } const cookieJar = await context.util.models.cookieJar.getOrCreateForWorkspace(workspace); if (!cookieJar) { throw new Error(`Cookie jar not found for ${meta.workspaceId}`); } return cookieJar; }, }];