UNPKG

@adonisjs/auth

Version:

Official authentication provider for Adonis framework

46 lines (45 loc) 1.51 kB
import { t as debug_default } from "../../../debug-Ckko95-M.js"; import { ApiClient, ApiRequest } from "@japa/api-client"; const authApiClient = (app) => { const pluginFn = function() { debug_default("installing auth api client plugin"); ApiRequest.macro("loginAs", function(user, ...args) { this.authData = { guard: "__default__", args: [user, ...args] }; return this; }); ApiRequest.macro("withGuard", function(guard) { return { loginAs: (...args) => { this.authData = { guard, args }; return this; } }; }); ApiClient.setup(async (request) => { const auth = await app.container.make("auth.manager"); const authData = request["authData"]; if (!authData) return; const client = auth.createAuthenticatorClient(); const requestData = await (authData.guard === "__default__" ? client.use() : client.use(authData.guard)).authenticateAsClient(...authData.args); /* c8 ignore next 13 */ if (requestData.headers) { debug_default("defining headers with api client request %O", requestData.headers); request.headers(requestData.headers); } if (requestData.session) { debug_default("defining session with api client request %O", requestData.session); request.withSession(requestData.session); } if (requestData.cookies) { debug_default("defining session with api client request %O", requestData.session); request.cookies(requestData.cookies); } }); }; return pluginFn; }; export { authApiClient };