@adonisjs/auth 9.0.0 → 9.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-3HZHOWKL.js";
4
4
  import {
5
5
  E_UNAUTHORIZED_ACCESS
6
- } from "./chunk-BHB55PBJ.js";
6
+ } from "./chunk-UGHJLKDI.js";
7
7
 
8
8
  // src/authenticator.ts
9
9
  import { RuntimeException } from "@adonisjs/core/exceptions";
@@ -243,4 +243,4 @@ export {
243
243
  AuthenticatorClient,
244
244
  AuthManager
245
245
  };
246
- //# sourceMappingURL=chunk-52DVKHJR.js.map
246
+ //# sourceMappingURL=chunk-OL2Z3AO5.js.map
@@ -159,7 +159,7 @@ var E_INVALID_CREDENTIALS = class extends Exception {
159
159
  case "html":
160
160
  case null:
161
161
  if (ctx.session) {
162
- ctx.session.flashExcept(["_csrf"]);
162
+ ctx.session.flashExcept(["_csrf", "_method", "password", "password_confirmation"]);
163
163
  ctx.session.flashErrors({ [error.code]: message });
164
164
  ctx.response.redirect("back", true);
165
165
  } else {
@@ -194,4 +194,4 @@ export {
194
194
  E_INVALID_CREDENTIALS,
195
195
  errors_exports
196
196
  };
197
- //# sourceMappingURL=chunk-BHB55PBJ.js.map
197
+ //# sourceMappingURL=chunk-UGHJLKDI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/errors.ts"],"sourcesContent":["/*\n * @adonisjs/auth\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport type { I18n } from '@adonisjs/i18n'\nimport { Exception } from '@adonisjs/core/exceptions'\nimport type { HttpContext } from '@adonisjs/core/http'\n\n/**\n * The \"E_UNAUTHORIZED_ACCESS\" exception is raised when unable to\n * authenticate an incoming HTTP request.\n *\n * The \"error.guardDriverName\" can be used to know the driver which\n * raised the error.\n */\nexport const E_UNAUTHORIZED_ACCESS = class extends Exception {\n static status: number = 401\n static code: string = 'E_UNAUTHORIZED_ACCESS'\n\n /**\n * Endpoint to redirect to. Only used by \"session\" driver\n * renderer\n */\n redirectTo?: string\n\n /**\n * Translation identifier. Can be customized\n */\n identifier: string = 'errors.E_UNAUTHORIZED_ACCESS'\n\n /**\n * The guard name reference that raised the exception. It allows\n * us to customize the logic of handling the exception.\n */\n guardDriverName: string\n\n /**\n * A collection of renderers to render the exception to a\n * response.\n *\n * The collection is a key-value pair, where the key is\n * the guard driver name and value is a factory function\n * to respond to the request.\n */\n renderers: Record<\n string,\n (message: string, error: this, ctx: HttpContext) => Promise<void> | void\n > = {\n /**\n * Response when session driver is used\n */\n session: (message, error, ctx) => {\n switch (ctx.request.accepts(['html', 'application/vnd.api+json', 'json'])) {\n case 'html':\n case null:\n ctx.session.flashExcept(['_csrf'])\n ctx.session.flashErrors({ [error.code!]: message })\n ctx.response.redirect(error.redirectTo || '/', true)\n break\n case 'json':\n ctx.response.status(error.status).send({\n errors: [\n {\n message,\n },\n ],\n })\n break\n case 'application/vnd.api+json':\n ctx.response.status(error.status).send({\n errors: [\n {\n code: error.code,\n title: message,\n },\n ],\n })\n break\n }\n },\n\n /**\n * Response when basic auth driver is used\n */\n basic_auth: (message, _, ctx) => {\n ctx.response\n .status(this.status)\n .header('WWW-Authenticate', `Basic realm=\"Authenticate\", charset=\"UTF-8\"`)\n .send(message)\n },\n\n /**\n * Response when access tokens driver is used\n */\n access_tokens: (message, error, ctx) => {\n switch (ctx.request.accepts(['html', 'application/vnd.api+json', 'json'])) {\n case 'html':\n case null:\n ctx.response.status(error.status).send(message)\n break\n case 'json':\n ctx.response.status(error.status).send({\n errors: [\n {\n message,\n },\n ],\n })\n break\n case 'application/vnd.api+json':\n ctx.response.status(error.status).send({\n errors: [\n {\n code: error.code,\n title: message,\n },\n ],\n })\n break\n }\n },\n }\n\n /**\n * Returns the message to be sent in the HTTP response.\n * Feel free to override this method and return a custom\n * response.\n */\n getResponseMessage(error: this, ctx: HttpContext) {\n if ('i18n' in ctx) {\n return (ctx.i18n as I18n).t(error.identifier, {}, error.message)\n }\n return error.message\n }\n\n constructor(\n message: string,\n options: {\n redirectTo?: string\n guardDriverName: string\n }\n ) {\n super(message, {})\n this.guardDriverName = options.guardDriverName\n this.redirectTo = options.redirectTo\n }\n\n /**\n * Converts exception to an HTTP response\n */\n async handle(error: this, ctx: HttpContext) {\n const renderer = this.renderers[this.guardDriverName]\n const message = error.getResponseMessage(error, ctx)\n\n if (!renderer) {\n return ctx.response.status(error.status).send(message)\n }\n\n return renderer(message, error, ctx)\n }\n}\n\n/**\n * Exception is raised when user credentials are invalid\n */\nexport const E_INVALID_CREDENTIALS = class extends Exception {\n static status: number = 400\n static code: string = 'E_INVALID_CREDENTIALS'\n\n /**\n * Translation identifier. Can be customized\n */\n identifier: string = 'errors.E_INVALID_CREDENTIALS'\n\n /**\n * Returns the message to be sent in the HTTP response.\n * Feel free to override this method and return a custom\n * response.\n */\n getResponseMessage(error: this, ctx: HttpContext) {\n if ('i18n' in ctx) {\n return (ctx.i18n as I18n).t(error.identifier, {}, error.message)\n }\n return error.message\n }\n\n /**\n * Converts exception to an HTTP response\n */\n async handle(error: this, ctx: HttpContext) {\n const message = this.getResponseMessage(error, ctx)\n\n switch (ctx.request.accepts(['html', 'application/vnd.api+json', 'json'])) {\n case 'html':\n case null:\n if (ctx.session) {\n ctx.session.flashExcept(['_csrf'])\n ctx.session.flashErrors({ [error.code!]: message })\n ctx.response.redirect('back', true)\n } else {\n ctx.response.status(error.status).send(message)\n }\n break\n case 'json':\n ctx.response.status(error.status).send({\n errors: [\n {\n message,\n },\n ],\n })\n break\n case 'application/vnd.api+json':\n ctx.response.status(error.status).send({\n errors: [\n {\n code: error.code,\n title: message,\n },\n ],\n })\n break\n }\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/errors.ts"],"sourcesContent":["/*\n * @adonisjs/auth\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport type { I18n } from '@adonisjs/i18n'\nimport { Exception } from '@adonisjs/core/exceptions'\nimport type { HttpContext } from '@adonisjs/core/http'\n\n/**\n * The \"E_UNAUTHORIZED_ACCESS\" exception is raised when unable to\n * authenticate an incoming HTTP request.\n *\n * The \"error.guardDriverName\" can be used to know the driver which\n * raised the error.\n */\nexport const E_UNAUTHORIZED_ACCESS = class extends Exception {\n static status: number = 401\n static code: string = 'E_UNAUTHORIZED_ACCESS'\n\n /**\n * Endpoint to redirect to. Only used by \"session\" driver\n * renderer\n */\n redirectTo?: string\n\n /**\n * Translation identifier. Can be customized\n */\n identifier: string = 'errors.E_UNAUTHORIZED_ACCESS'\n\n /**\n * The guard name reference that raised the exception. It allows\n * us to customize the logic of handling the exception.\n */\n guardDriverName: string\n\n /**\n * A collection of renderers to render the exception to a\n * response.\n *\n * The collection is a key-value pair, where the key is\n * the guard driver name and value is a factory function\n * to respond to the request.\n */\n renderers: Record<\n string,\n (message: string, error: this, ctx: HttpContext) => Promise<void> | void\n > = {\n /**\n * Response when session driver is used\n */\n session: (message, error, ctx) => {\n switch (ctx.request.accepts(['html', 'application/vnd.api+json', 'json'])) {\n case 'html':\n case null:\n ctx.session.flashExcept(['_csrf'])\n ctx.session.flashErrors({ [error.code!]: message })\n ctx.response.redirect(error.redirectTo || '/', true)\n break\n case 'json':\n ctx.response.status(error.status).send({\n errors: [\n {\n message,\n },\n ],\n })\n break\n case 'application/vnd.api+json':\n ctx.response.status(error.status).send({\n errors: [\n {\n code: error.code,\n title: message,\n },\n ],\n })\n break\n }\n },\n\n /**\n * Response when basic auth driver is used\n */\n basic_auth: (message, _, ctx) => {\n ctx.response\n .status(this.status)\n .header('WWW-Authenticate', `Basic realm=\"Authenticate\", charset=\"UTF-8\"`)\n .send(message)\n },\n\n /**\n * Response when access tokens driver is used\n */\n access_tokens: (message, error, ctx) => {\n switch (ctx.request.accepts(['html', 'application/vnd.api+json', 'json'])) {\n case 'html':\n case null:\n ctx.response.status(error.status).send(message)\n break\n case 'json':\n ctx.response.status(error.status).send({\n errors: [\n {\n message,\n },\n ],\n })\n break\n case 'application/vnd.api+json':\n ctx.response.status(error.status).send({\n errors: [\n {\n code: error.code,\n title: message,\n },\n ],\n })\n break\n }\n },\n }\n\n /**\n * Returns the message to be sent in the HTTP response.\n * Feel free to override this method and return a custom\n * response.\n */\n getResponseMessage(error: this, ctx: HttpContext) {\n if ('i18n' in ctx) {\n return (ctx.i18n as I18n).t(error.identifier, {}, error.message)\n }\n return error.message\n }\n\n constructor(\n message: string,\n options: {\n redirectTo?: string\n guardDriverName: string\n }\n ) {\n super(message, {})\n this.guardDriverName = options.guardDriverName\n this.redirectTo = options.redirectTo\n }\n\n /**\n * Converts exception to an HTTP response\n */\n async handle(error: this, ctx: HttpContext) {\n const renderer = this.renderers[this.guardDriverName]\n const message = error.getResponseMessage(error, ctx)\n\n if (!renderer) {\n return ctx.response.status(error.status).send(message)\n }\n\n return renderer(message, error, ctx)\n }\n}\n\n/**\n * Exception is raised when user credentials are invalid\n */\nexport const E_INVALID_CREDENTIALS = class extends Exception {\n static status: number = 400\n static code: string = 'E_INVALID_CREDENTIALS'\n\n /**\n * Translation identifier. Can be customized\n */\n identifier: string = 'errors.E_INVALID_CREDENTIALS'\n\n /**\n * Returns the message to be sent in the HTTP response.\n * Feel free to override this method and return a custom\n * response.\n */\n getResponseMessage(error: this, ctx: HttpContext) {\n if ('i18n' in ctx) {\n return (ctx.i18n as I18n).t(error.identifier, {}, error.message)\n }\n return error.message\n }\n\n /**\n * Converts exception to an HTTP response\n */\n async handle(error: this, ctx: HttpContext) {\n const message = this.getResponseMessage(error, ctx)\n\n switch (ctx.request.accepts(['html', 'application/vnd.api+json', 'json'])) {\n case 'html':\n case null:\n if (ctx.session) {\n ctx.session.flashExcept(['_csrf', '_method', 'password', 'password_confirmation'])\n ctx.session.flashErrors({ [error.code!]: message })\n ctx.response.redirect('back', true)\n } else {\n ctx.response.status(error.status).send(message)\n }\n break\n case 'json':\n ctx.response.status(error.status).send({\n errors: [\n {\n message,\n },\n ],\n })\n break\n case 'application/vnd.api+json':\n ctx.response.status(error.status).send({\n errors: [\n {\n code: error.code,\n title: message,\n },\n ],\n })\n break\n }\n }\n}\n"],"mappings":"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","names":[]}
package/build/index.js CHANGED
@@ -2,12 +2,12 @@ import {
2
2
  AuthManager,
3
3
  Authenticator,
4
4
  AuthenticatorClient
5
- } from "./chunk-52DVKHJR.js";
5
+ } from "./chunk-OL2Z3AO5.js";
6
6
  import "./chunk-3HZHOWKL.js";
7
7
  import {
8
8
  E_INVALID_CREDENTIALS,
9
9
  errors_exports
10
- } from "./chunk-BHB55PBJ.js";
10
+ } from "./chunk-UGHJLKDI.js";
11
11
  import {
12
12
  __decorateClass,
13
13
  __export
@@ -110,6 +110,9 @@ function withAuthFinder(hash, options) {
110
110
  * safe from timing attacks.
111
111
  */
112
112
  static async verifyCredentials(uid, password) {
113
+ if (!uid || !password) {
114
+ throw new E_INVALID_CREDENTIALS("Invalid user credentials");
115
+ }
113
116
  const user = await this.findForAuth(options.uids, uid);
114
117
  if (!user) {
115
118
  await hash.make(password);
@@ -1 +1 @@
1
- {"version":3,"sources":["../configure.ts","../src/symbols.ts","../src/define_config.ts","../src/mixins/with_auth_finder.ts"],"sourcesContent":["/*\n * @adonisjs/auth\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { presetAuth } from '@adonisjs/presets/auth'\nimport type Configure from '@adonisjs/core/commands/configure'\n\n/**\n * Configures the auth package\n */\nexport async function configure(command: Configure) {\n const codemods = await command.createCodemods()\n let guard: string | undefined = command.parsedFlags.guard\n\n /**\n * Prompts user to select a guard when not mentioned via\n * the CLI\n */\n if (guard === undefined) {\n guard = await command.prompt.choice(\n 'Select the auth guard you want to use',\n [\n {\n name: 'session',\n message: 'Session',\n },\n {\n name: 'access_tokens',\n message: 'Opaque access tokens',\n },\n ],\n {\n validate(value) {\n return !!value\n },\n }\n )\n }\n\n /**\n * Ensure selected or guard defined via the CLI flag is\n * valid\n */\n if (!['session', 'access_tokens'].includes(guard!)) {\n command.logger.error(\n `The selected guard \"${guard}\" is invalid. Select one from: session, access_tokens`\n )\n command.exitCode = 1\n return\n }\n\n await presetAuth(codemods, command.app, {\n guard: guard as 'session' | 'access_tokens',\n userProvider: 'lucid',\n })\n}\n","/*\n * @adonisjs/lucid\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * A symbol to identify the type of the real user for a given\n * user provider\n */\nexport const PROVIDER_REAL_USER = Symbol.for('PROVIDER_REAL_USER')\n\n/**\n * A symbol to identify the type for the events emitted by a guard\n */\nexport const GUARD_KNOWN_EVENTS = Symbol.for('GUARD_KNOWN_EVENTS')\n","/*\n * @adonisjs/auth\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { configProvider } from '@adonisjs/core'\nimport type { ConfigProvider } from '@adonisjs/core/types'\nimport type { GuardConfigProvider, GuardFactory } from './types.js'\n\n/**\n * Config resolved by the \"defineConfig\" method\n */\nexport type ResolvedAuthConfig<\n KnownGuards extends Record<string, GuardFactory | GuardConfigProvider<GuardFactory>>,\n> = {\n default: keyof KnownGuards\n guards: {\n [K in keyof KnownGuards]: KnownGuards[K] extends GuardConfigProvider<infer A>\n ? A\n : KnownGuards[K]\n }\n}\n\n/**\n * Define configuration for the auth package. The function returns\n * a config provider that is invoked inside the auth service\n * provider\n */\nexport function defineConfig<\n KnownGuards extends Record<string, GuardFactory | GuardConfigProvider<GuardFactory>>,\n>(config: {\n default: keyof KnownGuards\n guards: KnownGuards\n}): ConfigProvider<ResolvedAuthConfig<KnownGuards>> {\n return configProvider.create(async (app) => {\n const guardsList = Object.keys(config.guards)\n const guards = {} as Record<string, GuardFactory>\n\n for (let guardName of guardsList) {\n const guard = config.guards[guardName]\n if (typeof guard === 'function') {\n guards[guardName] = guard\n } else {\n guards[guardName] = await guard.resolver(guardName, app)\n }\n }\n\n return {\n default: config.default,\n guards: guards,\n } as ResolvedAuthConfig<KnownGuards>\n })\n}\n","/*\n * @adonisjs/auth\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport type { Hash } from '@adonisjs/core/hash'\nimport { RuntimeException } from '@adonisjs/core/exceptions'\nimport { beforeSave, type BaseModel } from '@adonisjs/lucid/orm'\nimport type { NormalizeConstructor } from '@adonisjs/core/types/helpers'\nimport { E_INVALID_CREDENTIALS } from '../errors.js'\n\n/**\n * Mixing to add user lookup and password verification methods\n * on a model.\n *\n * Under the hood, this mixin defines following methods and hooks\n *\n * - beforeSave hook to hash user password\n * - findForAuth method to find a user during authentication\n * - verifyCredentials method to verify user credentials and prevent\n * timing attacks.\n */\nexport function withAuthFinder(\n hash: Hash,\n options: {\n uids: string[]\n passwordColumnName: string\n }\n) {\n return <Model extends NormalizeConstructor<typeof BaseModel>>(superclass: Model) => {\n class UserWithUserFinder extends superclass {\n /**\n * Hook to verify user password when creating or updating\n * the user model.\n */\n @beforeSave()\n static async hashPassword<T extends typeof UserWithUserFinder>(\n this: T,\n user: InstanceType<T>\n ) {\n if (user.$dirty[options.passwordColumnName]) {\n ;(user as any)[options.passwordColumnName] = await hash.make(\n (user as any)[options.passwordColumnName]\n )\n }\n }\n\n /**\n * Finds the user for authentication via \"verifyCredentials\".\n * Feel free to override this method customize the user\n * lookup behavior.\n */\n static findForAuth<T extends typeof UserWithUserFinder>(\n this: T,\n uids: string[],\n value: string\n ): Promise<InstanceType<T> | null> {\n const query = this.query()\n uids.forEach((uid) => query.orWhere(uid, value))\n return query.limit(1).first()\n }\n\n /**\n * Find a user by uid and verify their password. This method is\n * safe from timing attacks.\n */\n static async verifyCredentials<T extends typeof UserWithUserFinder>(\n this: T,\n uid: string,\n password: string\n ) {\n const user = await this.findForAuth(options.uids, uid)\n if (!user) {\n await hash.make(password)\n throw new E_INVALID_CREDENTIALS('Invalid user credentials')\n }\n\n const passwordHash = (user as any)[options.passwordColumnName]\n if (!passwordHash) {\n throw new RuntimeException(\n `Cannot verify password during login. The value of column \"${options.passwordColumnName}\" is undefined or null`\n )\n }\n\n if (await hash.verify(passwordHash, password)) {\n return user\n }\n\n throw new E_INVALID_CREDENTIALS('Invalid user credentials')\n }\n }\n\n return UserWithUserFinder\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AASA,SAAS,kBAAkB;AAM3B,eAAsB,UAAU,SAAoB;AAClD,QAAM,WAAW,MAAM,QAAQ,eAAe;AAC9C,MAAI,QAA4B,QAAQ,YAAY;AAMpD,MAAI,UAAU,QAAW;AACvB,YAAQ,MAAM,QAAQ,OAAO;AAAA,MAC3B;AAAA,MACA;AAAA,QACE;AAAA,UACE,MAAM;AAAA,UACN,SAAS;AAAA,QACX;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA;AAAA,QACE,SAAS,OAAO;AACd,iBAAO,CAAC,CAAC;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAMA,MAAI,CAAC,CAAC,WAAW,eAAe,EAAE,SAAS,KAAM,GAAG;AAClD,YAAQ,OAAO;AAAA,MACb,uBAAuB,KAAK;AAAA,IAC9B;AACA,YAAQ,WAAW;AACnB;AAAA,EACF;AAEA,QAAM,WAAW,UAAU,QAAQ,KAAK;AAAA,IACtC;AAAA,IACA,cAAc;AAAA,EAChB,CAAC;AACH;;;AC5DA;AAAA;AAAA;AAAA;AAAA;AAaO,IAAM,qBAAqB,OAAO,IAAI,oBAAoB;AAK1D,IAAM,qBAAqB,OAAO,IAAI,oBAAoB;;;ACTjE,SAAS,sBAAsB;AAuBxB,SAAS,aAEd,QAGkD;AAClD,SAAO,eAAe,OAAO,OAAO,QAAQ;AAC1C,UAAM,aAAa,OAAO,KAAK,OAAO,MAAM;AAC5C,UAAM,SAAS,CAAC;AAEhB,aAAS,aAAa,YAAY;AAChC,YAAM,QAAQ,OAAO,OAAO,SAAS;AACrC,UAAI,OAAO,UAAU,YAAY;AAC/B,eAAO,SAAS,IAAI;AAAA,MACtB,OAAO;AACL,eAAO,SAAS,IAAI,MAAM,MAAM,SAAS,WAAW,GAAG;AAAA,MACzD;AAAA,IACF;AAEA,WAAO;AAAA,MACL,SAAS,OAAO;AAAA,MAChB;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;AC9CA,SAAS,wBAAwB;AACjC,SAAS,kBAAkC;AAepC,SAAS,eACd,MACA,SAIA;AACA,SAAO,CAAuD,eAAsB;AAAA,IAClF,MAAM,2BAA2B,WAAW;AAAA,MAM1C,aAAa,aAEX,MACA;AACA,YAAI,KAAK,OAAO,QAAQ,kBAAkB,GAAG;AAC3C;AAAC,UAAC,KAAa,QAAQ,kBAAkB,IAAI,MAAM,KAAK;AAAA,YACrD,KAAa,QAAQ,kBAAkB;AAAA,UAC1C;AAAA,QACF;AAAA,MACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOA,OAAO,YAEL,MACA,OACiC;AACjC,cAAM,QAAQ,KAAK,MAAM;AACzB,aAAK,QAAQ,CAAC,QAAQ,MAAM,QAAQ,KAAK,KAAK,CAAC;AAC/C,eAAO,MAAM,MAAM,CAAC,EAAE,MAAM;AAAA,MAC9B;AAAA;AAAA;AAAA;AAAA;AAAA,MAMA,aAAa,kBAEX,KACA,UACA;AACA,cAAM,OAAO,MAAM,KAAK,YAAY,QAAQ,MAAM,GAAG;AACrD,YAAI,CAAC,MAAM;AACT,gBAAM,KAAK,KAAK,QAAQ;AACxB,gBAAM,IAAI,sBAAsB,0BAA0B;AAAA,QAC5D;AAEA,cAAM,eAAgB,KAAa,QAAQ,kBAAkB;AAC7D,YAAI,CAAC,cAAc;AACjB,gBAAM,IAAI;AAAA,YACR,6DAA6D,QAAQ,kBAAkB;AAAA,UACzF;AAAA,QACF;AAEA,YAAI,MAAM,KAAK,OAAO,cAAc,QAAQ,GAAG;AAC7C,iBAAO;AAAA,QACT;AAEA,cAAM,IAAI,sBAAsB,0BAA0B;AAAA,MAC5D;AAAA,IACF;AAtDe;AAAA,MADZ,WAAW;AAAA,OALR,oBAMS;AAwDf,WAAO;AAAA,EACT;AACF;","names":[]}
1
+ {"version":3,"sources":["../configure.ts","../src/symbols.ts","../src/define_config.ts","../src/mixins/with_auth_finder.ts"],"sourcesContent":["/*\n * @adonisjs/auth\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { presetAuth } from '@adonisjs/presets/auth'\nimport type Configure from '@adonisjs/core/commands/configure'\n\n/**\n * Configures the auth package\n */\nexport async function configure(command: Configure) {\n const codemods = await command.createCodemods()\n let guard: string | undefined = command.parsedFlags.guard\n\n /**\n * Prompts user to select a guard when not mentioned via\n * the CLI\n */\n if (guard === undefined) {\n guard = await command.prompt.choice(\n 'Select the auth guard you want to use',\n [\n {\n name: 'session',\n message: 'Session',\n },\n {\n name: 'access_tokens',\n message: 'Opaque access tokens',\n },\n ],\n {\n validate(value) {\n return !!value\n },\n }\n )\n }\n\n /**\n * Ensure selected or guard defined via the CLI flag is\n * valid\n */\n if (!['session', 'access_tokens'].includes(guard!)) {\n command.logger.error(\n `The selected guard \"${guard}\" is invalid. Select one from: session, access_tokens`\n )\n command.exitCode = 1\n return\n }\n\n await presetAuth(codemods, command.app, {\n guard: guard as 'session' | 'access_tokens',\n userProvider: 'lucid',\n })\n}\n","/*\n * @adonisjs/lucid\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * A symbol to identify the type of the real user for a given\n * user provider\n */\nexport const PROVIDER_REAL_USER = Symbol.for('PROVIDER_REAL_USER')\n\n/**\n * A symbol to identify the type for the events emitted by a guard\n */\nexport const GUARD_KNOWN_EVENTS = Symbol.for('GUARD_KNOWN_EVENTS')\n","/*\n * @adonisjs/auth\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { configProvider } from '@adonisjs/core'\nimport type { ConfigProvider } from '@adonisjs/core/types'\nimport type { GuardConfigProvider, GuardFactory } from './types.js'\n\n/**\n * Config resolved by the \"defineConfig\" method\n */\nexport type ResolvedAuthConfig<\n KnownGuards extends Record<string, GuardFactory | GuardConfigProvider<GuardFactory>>,\n> = {\n default: keyof KnownGuards\n guards: {\n [K in keyof KnownGuards]: KnownGuards[K] extends GuardConfigProvider<infer A>\n ? A\n : KnownGuards[K]\n }\n}\n\n/**\n * Define configuration for the auth package. The function returns\n * a config provider that is invoked inside the auth service\n * provider\n */\nexport function defineConfig<\n KnownGuards extends Record<string, GuardFactory | GuardConfigProvider<GuardFactory>>,\n>(config: {\n default: keyof KnownGuards\n guards: KnownGuards\n}): ConfigProvider<ResolvedAuthConfig<KnownGuards>> {\n return configProvider.create(async (app) => {\n const guardsList = Object.keys(config.guards)\n const guards = {} as Record<string, GuardFactory>\n\n for (let guardName of guardsList) {\n const guard = config.guards[guardName]\n if (typeof guard === 'function') {\n guards[guardName] = guard\n } else {\n guards[guardName] = await guard.resolver(guardName, app)\n }\n }\n\n return {\n default: config.default,\n guards: guards,\n } as ResolvedAuthConfig<KnownGuards>\n })\n}\n","/*\n * @adonisjs/auth\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport type { Hash } from '@adonisjs/core/hash'\nimport { RuntimeException } from '@adonisjs/core/exceptions'\nimport { beforeSave, type BaseModel } from '@adonisjs/lucid/orm'\nimport type { NormalizeConstructor } from '@adonisjs/core/types/helpers'\nimport { E_INVALID_CREDENTIALS } from '../errors.js'\n\n/**\n * Mixing to add user lookup and password verification methods\n * on a model.\n *\n * Under the hood, this mixin defines following methods and hooks\n *\n * - beforeSave hook to hash user password\n * - findForAuth method to find a user during authentication\n * - verifyCredentials method to verify user credentials and prevent\n * timing attacks.\n */\nexport function withAuthFinder(\n hash: Hash,\n options: {\n uids: string[]\n passwordColumnName: string\n }\n) {\n return <Model extends NormalizeConstructor<typeof BaseModel>>(superclass: Model) => {\n class UserWithUserFinder extends superclass {\n /**\n * Hook to verify user password when creating or updating\n * the user model.\n */\n @beforeSave()\n static async hashPassword<T extends typeof UserWithUserFinder>(\n this: T,\n user: InstanceType<T>\n ) {\n if (user.$dirty[options.passwordColumnName]) {\n ;(user as any)[options.passwordColumnName] = await hash.make(\n (user as any)[options.passwordColumnName]\n )\n }\n }\n\n /**\n * Finds the user for authentication via \"verifyCredentials\".\n * Feel free to override this method customize the user\n * lookup behavior.\n */\n static findForAuth<T extends typeof UserWithUserFinder>(\n this: T,\n uids: string[],\n value: string\n ): Promise<InstanceType<T> | null> {\n const query = this.query()\n uids.forEach((uid) => query.orWhere(uid, value))\n return query.limit(1).first()\n }\n\n /**\n * Find a user by uid and verify their password. This method is\n * safe from timing attacks.\n */\n static async verifyCredentials<T extends typeof UserWithUserFinder>(\n this: T,\n uid: string,\n password: string\n ) {\n /**\n * Fail when uid or the password are missing\n */\n if (!uid || !password) {\n throw new E_INVALID_CREDENTIALS('Invalid user credentials')\n }\n\n const user = await this.findForAuth(options.uids, uid)\n if (!user) {\n await hash.make(password)\n throw new E_INVALID_CREDENTIALS('Invalid user credentials')\n }\n\n const passwordHash = (user as any)[options.passwordColumnName]\n if (!passwordHash) {\n throw new RuntimeException(\n `Cannot verify password during login. The value of column \"${options.passwordColumnName}\" is undefined or null`\n )\n }\n\n if (await hash.verify(passwordHash, password)) {\n return user\n }\n\n throw new E_INVALID_CREDENTIALS('Invalid user credentials')\n }\n }\n\n return UserWithUserFinder\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  E_UNAUTHORIZED_ACCESS
3
- } from "../../chunk-BHB55PBJ.js";
3
+ } from "../../chunk-UGHJLKDI.js";
4
4
  import "../../chunk-CZCFTIBB.js";
5
5
 
6
6
  // modules/access_tokens_guard/access_token.ts
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  E_UNAUTHORIZED_ACCESS
3
- } from "../../chunk-BHB55PBJ.js";
3
+ } from "../../chunk-UGHJLKDI.js";
4
4
  import "../../chunk-CZCFTIBB.js";
5
5
 
6
6
  // modules/session_guard/remember_me_token.ts
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  AuthManager
3
- } from "../chunk-52DVKHJR.js";
3
+ } from "../chunk-OL2Z3AO5.js";
4
4
  import "../chunk-3HZHOWKL.js";
5
- import "../chunk-BHB55PBJ.js";
5
+ import "../chunk-UGHJLKDI.js";
6
6
  import "../chunk-CZCFTIBB.js";
7
7
 
8
8
  // providers/auth_provider.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adonisjs/auth",
3
- "version": "9.0.0",
3
+ "version": "9.0.1",
4
4
  "description": "Official authentication provider for Adonis framework",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
@@ -61,26 +61,26 @@
61
61
  },
62
62
  "devDependencies": {
63
63
  "@adonisjs/assembler": "^7.1.0",
64
- "@adonisjs/core": "^6.2.0",
64
+ "@adonisjs/core": "^6.2.1",
65
65
  "@adonisjs/eslint-config": "^1.2.1",
66
66
  "@adonisjs/i18n": "^2.0.0",
67
67
  "@adonisjs/lucid": "^19.0.0",
68
68
  "@adonisjs/prettier-config": "^1.2.1",
69
- "@adonisjs/session": "^7.0.0",
69
+ "@adonisjs/session": "^7.1.0",
70
70
  "@adonisjs/tsconfig": "^1.2.1",
71
- "@commitlint/cli": "^18.4.4",
72
- "@commitlint/config-conventional": "^18.4.4",
71
+ "@commitlint/cli": "^18.5.0",
72
+ "@commitlint/config-conventional": "^18.5.0",
73
73
  "@japa/api-client": "^2.0.2",
74
74
  "@japa/assert": "^2.1.0",
75
75
  "@japa/browser-client": "^2.0.2",
76
76
  "@japa/expect-type": "^2.0.1",
77
- "@japa/file-system": "^2.1.1",
77
+ "@japa/file-system": "^2.2.0",
78
78
  "@japa/plugin-adonisjs": "^3.0.0",
79
79
  "@japa/runner": "^3.1.1",
80
80
  "@japa/snapshot": "^2.0.4",
81
- "@swc/core": "^1.3.102",
81
+ "@swc/core": "^1.3.105",
82
82
  "@types/basic-auth": "^1.1.7",
83
- "@types/luxon": "^3.4.0",
83
+ "@types/luxon": "^3.4.2",
84
84
  "@types/node": "^20.10.8",
85
85
  "@types/set-cookie-parser": "^2.4.7",
86
86
  "@types/sinon": "^17.0.3",
@@ -95,7 +95,7 @@
95
95
  "luxon": "^3.4.4",
96
96
  "nock": "^13.5.0",
97
97
  "np": "^9.2.0",
98
- "playwright": "^1.40.1",
98
+ "playwright": "^1.41.1",
99
99
  "prettier": "^3.1.1",
100
100
  "set-cookie-parser": "^2.6.0",
101
101
  "sinon": "^17.0.1",
@@ -136,7 +136,7 @@
136
136
  ]
137
137
  },
138
138
  "dependencies": {
139
- "@adonisjs/presets": "^2.2.0",
139
+ "@adonisjs/presets": "^2.2.1",
140
140
  "basic-auth": "^2.0.1"
141
141
  },
142
142
  "peerDependencies": {