---
title: "Phalcon Auth"
version: "5.20"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.phalcon.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Phalcon Auth

:::info[NOTE]
All classes are prefixed with `Phalcon`
:::

## Auth\AbstractAuthDispatcherListener

Abstract

Shared enforcement algorithm for the Cli, Mvc and Micro auth listeners.
The subclass provides the action name and context from its event source,
the action-kind label used in the access-denied exception, and (Mvc only)
a forward handler for Access::redirectTo().

Enforcement is fail-open: when the manager has no active access
(Manager::getAccess() === null) every dispatch is allowed. A policy
activated via Manager::access() persists across forwards and nested
dispatches in the same request until it is replaced.

- **`Phalcon\Auth\AbstractAuthDispatcherListener`**
- [`Phalcon\Auth\Cli\AuthDispatcherListener`](#authcliauthdispatcherlistener)
- [`Phalcon\Auth\Micro\AuthMicroListener`](#authmicroauthmicrolistener)
- [`Phalcon\Auth\Mvc\AuthDispatcherListener`](#authmvcauthdispatcherlistener)

`Phalcon\Auth\Exceptions\AccessDenied` · `Phalcon\Contracts\Auth\Access\Access` · `Phalcon\Contracts\Auth\Manager`

### Method Summary

<ApiItem href="#authabstractauthdispatcherlistener-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"Manager","name":"manager","default":null}]}>
</ApiItem>
<ApiItem href="#authabstractauthdispatcherlistener-enforce" visibility="protected" name="enforce" returnType="bool" params={[{"type":"string","name":"actionName","default":null},{"type":"array","name":"context","default":"[]"},{"type":"mixed","name":"forwardHandler","default":"null"}]}>
Runs the access check for the given action name. Returns true when
</ApiItem>
<ApiItem href="#authabstractauthdispatcherlistener-getactiontype" visibility="protected" name="getActionType" returnType="string" params={[]}>
Returns the kind label used by AccessDenied (e.g. 'task', 'action',
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="manager" type="Manager" default="">
</ApiItem>

### Methods

<h4 id="authabstractauthdispatcherlistener-__construct"><code>__construct()</code></h4>

```php
public function __construct( Manager $manager );
```

<h4 id="authabstractauthdispatcherlistener-enforce"><code>enforce()</code></h4>

```php
protected function enforce(
string $actionName,
array $context = [],
mixed $forwardHandler = null
): bool;
```

Runs the access check for the given action name. Returns true when
the dispatch should proceed, false when a forward was issued, and
throws when access is denied without a redirect target.

The guard is fetched only when an access is active, so the no-op
path works without a default guard.

<h4 id="authabstractauthdispatcherlistener-getactiontype"><code>getActionType()</code></h4>

```php
abstract protected function getActionType(): string;
```

Returns the kind label used by AccessDenied (e.g. 'task', 'action',
'route').

## Auth\Access\AbstractAccess

Abstract

- **`Phalcon\Auth\Access\AbstractAccess`** - implements [`Phalcon\Contracts\Auth\Access\Access`](/5.20/api/phalcon_contracts/#contractsauthaccessaccess)
- [`Phalcon\Auth\Access\Acl`](#authaccessacl)
- [`Phalcon\Auth\Access\Auth`](#authaccessauth)
- [`Phalcon\Auth\Access\Guest`](#authaccessguest)

`Phalcon\Contracts\Auth\Access\Access` · `Phalcon\Contracts\Auth\Guard\Guard`

### Method Summary

<ApiItem href="#authaccessabstractaccess-getexceptactions" visibility="public" name="getExceptActions" returnType="array" params={[]}>
</ApiItem>
<ApiItem href="#authaccessabstractaccess-getonlyactions" visibility="public" name="getOnlyActions" returnType="array" params={[]}>
</ApiItem>
<ApiItem href="#authaccessabstractaccess-isallowed" visibility="public" name="isAllowed" returnType="bool" params={[{"type":"Guard","name":"guard","default":null},{"type":"string","name":"actionName","default":null},{"type":"array","name":"context","default":"[]"}]}>
</ApiItem>
<ApiItem href="#authaccessabstractaccess-redirectto" visibility="public" name="redirectTo" returnType="array|null" params={[]}>
</ApiItem>
<ApiItem href="#authaccessabstractaccess-setexceptactions" visibility="public" name="setExceptActions" returnType="void" params={[{"type":"array","name":"exceptActions","default":"[]"}]}>
</ApiItem>
<ApiItem href="#authaccessabstractaccess-setonlyactions" visibility="public" name="setOnlyActions" returnType="void" params={[{"type":"array","name":"onlyActions","default":"[]"}]}>
</ApiItem>
<ApiItem href="#authaccessabstractaccess-allowedif" visibility="protected" name="allowedIf" returnType="bool" params={[{"type":"Guard","name":"guard","default":null}]}>
Whether the gate's base condition holds for the given identity.
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="exceptActions" type="list&lt;string&gt;" default="[]">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="onlyActions" type="list&lt;string&gt;" default="[]">
</ApiItem>

### Methods

<h4 id="authaccessabstractaccess-getexceptactions"><code>getExceptActions()</code></h4>

```php
public function getExceptActions(): array;
```

<h4 id="authaccessabstractaccess-getonlyactions"><code>getOnlyActions()</code></h4>

```php
public function getOnlyActions(): array;
```

<h4 id="authaccessabstractaccess-isallowed"><code>isAllowed()</code></h4>

```php
public function isAllowed(
Guard $guard,
string $actionName,
array $context = []
): bool;
```

<h4 id="authaccessabstractaccess-redirectto"><code>redirectTo()</code></h4>

```php
public function redirectTo(): array|null;
```

<h4 id="authaccessabstractaccess-setexceptactions"><code>setExceptActions()</code></h4>

```php
public function setExceptActions( array $exceptActions = [] ): void;
```

<h4 id="authaccessabstractaccess-setonlyactions"><code>setOnlyActions()</code></h4>

```php
public function setOnlyActions( array $onlyActions = [] ): void;
```

<h4 id="authaccessabstractaccess-allowedif"><code>allowedIf()</code></h4>

```php
abstract protected function allowedIf( Guard $guard ): bool;
```

Whether the gate's base condition holds for the given identity.

## Auth\Access\AccessLocator

Class

Service locator for Phalcon\Auth access gates. Utilizes the container to
obtain the service. For the Phalcon\Container\Container one can use
autowiring. For the Phalcon\Di\Di, one needs to register the gates in it
to be used here (the binary gates also resolve unregistered through Di's
class builder).

@extends AbstractLocator&lt;Access>

- [`Phalcon\Support\AbstractLocator`](/5.20/api/phalcon_support/#supportabstractlocator)
- **`Phalcon\Auth\Access\AccessLocator`**

`Phalcon\Auth\Exception` · `Phalcon\Auth\Internal\ContainerResolver` · `Phalcon\Contracts\Auth\Access\Access` · `Phalcon\Support\AbstractLocator`

### Method Summary

<ApiItem href="#authaccessaccesslocator-newinstance" visibility="public" name="newInstance" returnType="object" params={[{"type":"string","name":"name","default":null}]}>
Resolve a fresh gate instance from the container.
</ApiItem>
<ApiItem href="#authaccessaccesslocator-getexceptionclass" visibility="protected" name="getExceptionClass" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authaccessaccesslocator-getinterfaceclass" visibility="protected" name="getInterfaceClass" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authaccessaccesslocator-getservices" visibility="protected" name="getServices" returnType="array" params={[]}>
</ApiItem>

### Methods

<h4 id="authaccessaccesslocator-newinstance"><code>newInstance()</code></h4>

```php
public function newInstance( string $name ): object;
```

Resolve a fresh gate instance from the container.

Gates carry per-activation state (the only/except action filters), so
resolution must yield a fresh instance: new() on the Container
bypasses the instance cache; on the legacy Di, get() builds
unregistered classes and non-shared services fresh, and a shared
service is rebuilt from its definition.

<h4 id="authaccessaccesslocator-getexceptionclass"><code>getExceptionClass()</code></h4>

```php
protected function getExceptionClass(): string;
```

<h4 id="authaccessaccesslocator-getinterfaceclass"><code>getInterfaceClass()</code></h4>

```php
protected function getInterfaceClass(): string;
```

<h4 id="authaccessaccesslocator-getservices"><code>getServices()</code></h4>

```php
protected function getServices(): array;
```

## Auth\Access\Acl

Class

ACL-backed access gate. Checks the authenticated user's role against a
Phalcon\Acl adapter: the ACL component is taken from the 'handler' context
key (prefixed with 'module' and the module separator when present) and the
ACL access is the action name. The 'params' context key is passed through
to the ACL adapter for callable rules.

Filter semantics differ from the binary gates: except = bypass the gate
for the listed actions; only = the gate applies to the listed actions
exclusively (everything else is allowed).

Role resolution: no user resolves to the configured guest role; a user
implementing Phalcon\Acl\RoleAwareInterface supplies its role name; any
other user is rejected with an exception.

- [`Phalcon\Auth\Access\AbstractAccess`](#authaccessabstractaccess)
- **`Phalcon\Auth\Access\Acl`**

`Phalcon\Acl\Adapter\AdapterInterface` · `Phalcon\Acl\RoleAwareInterface` · `Phalcon\Auth\Exception` · `Phalcon\Auth\Exceptions\DoesNotImplement` · `Phalcon\Auth\Exceptions\MissingHandlerContext` · `Phalcon\Contracts\Auth\Access\Access` · `Phalcon\Contracts\Auth\AuthUser` · `Phalcon\Contracts\Auth\Guard\Guard`

### Method Summary

<ApiItem href="#authaccessacl-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"AdapterInterface","name":"acl","default":null},{"type":"array","name":"options","default":"[]"}]}>
</ApiItem>
<ApiItem href="#authaccessacl-isallowed" visibility="public" name="isAllowed" returnType="bool" params={[{"type":"Guard","name":"guard","default":null},{"type":"string","name":"actionName","default":null},{"type":"array","name":"context","default":"[]"}]}>
</ApiItem>
<ApiItem href="#authaccessacl-allowedif" visibility="protected" name="allowedIf" returnType="bool" params={[{"type":"Guard","name":"guard","default":null}]}>
Unused: this gate overrides isAllowed() in full. Fail closed to
</ApiItem>
<ApiItem href="#authaccessacl-resolverole" visibility="protected" name="resolveRole" returnType="string" params={[{"type":"Guard","name":"guard","default":null}]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="acl" type="AdapterInterface" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="guestRole" type="string" default="&quot;guest&quot;">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="moduleSeparator" type="string" default="&quot;:&quot;">
</ApiItem>

### Methods

<h4 id="authaccessacl-__construct"><code>__construct()</code></h4>

```php
public function __construct(
AdapterInterface $acl,
array $options = []
);
```

<h4 id="authaccessacl-isallowed"><code>isAllowed()</code></h4>

```php
public function isAllowed(
Guard $guard,
string $actionName,
array $context = []
): bool;
```

<h4 id="authaccessacl-allowedif"><code>allowedIf()</code></h4>

```php
protected function allowedIf( Guard $guard ): bool;
```

Unused: this gate overrides isAllowed() in full. Fail closed to
satisfy the abstract.

<h4 id="authaccessacl-resolverole"><code>resolveRole()</code></h4>

```php
protected function resolveRole( Guard $guard ): string;
```

## Auth\Access\Auth

Class

- [`Phalcon\Auth\Access\AbstractAccess`](#authaccessabstractaccess)
- **`Phalcon\Auth\Access\Auth`**

`Phalcon\Contracts\Auth\Guard\Guard`

### Method Summary

<ApiItem href="#authaccessauth-allowedif" visibility="protected" name="allowedIf" returnType="bool" params={[{"type":"Guard","name":"guard","default":null}]}>
</ApiItem>

### Methods

<h4 id="authaccessauth-allowedif"><code>allowedIf()</code></h4>

```php
protected function allowedIf( Guard $guard ): bool;
```

## Auth\Access\Guest

Class

- [`Phalcon\Auth\Access\AbstractAccess`](#authaccessabstractaccess)
- **`Phalcon\Auth\Access\Guest`**

`Phalcon\Contracts\Auth\Guard\Guard`

### Method Summary

<ApiItem href="#authaccessguest-allowedif" visibility="protected" name="allowedIf" returnType="bool" params={[{"type":"Guard","name":"guard","default":null}]}>
</ApiItem>

### Methods

<h4 id="authaccessguest-allowedif"><code>allowedIf()</code></h4>

```php
protected function allowedIf( Guard $guard ): bool;
```

## Auth\Adapter\AbstractAdapter

Abstract

@template TConfig of AdapterConfig

- **`Phalcon\Auth\Adapter\AbstractAdapter`** - implements [`Phalcon\Contracts\Auth\Adapter\Adapter`](/5.20/api/phalcon_contracts/#contractsauthadapteradapter)
- [`Phalcon\Auth\Adapter\AbstractArrayAdapter`](#authadapterabstractarrayadapter)
- [`Phalcon\Auth\Adapter\Model`](#authadaptermodel)

`Phalcon\Contracts\Auth\Adapter\Adapter` · `Phalcon\Contracts\Auth\Adapter\AdapterConfig` · `Phalcon\Contracts\Auth\AuthUser` · `Phalcon\Contracts\Encryption\Security\Security`

### Method Summary

<ApiItem href="#authadapterabstractadapter-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"Security","name":"hasher","default":null},{"type":"AdapterConfig","name":"config","default":null}]}>
</ApiItem>
<ApiItem href="#authadapterabstractadapter-getconfig" visibility="public" name="getConfig" returnType="AdapterConfig" params={[]}>
Returns the adapter configuration object.
</ApiItem>
<ApiItem href="#authadapterabstractadapter-getmodel" visibility="public" name="getModel" returnType="string|null" params={[]}>
Returns the model class name, if configured.
</ApiItem>
<ApiItem href="#authadapterabstractadapter-validatecredentials" visibility="public" name="validateCredentials" returnType="bool" params={[{"type":"AuthUser","name":"user","default":null},{"type":"array","name":"credentials","default":null}]}>
Validates the supplied plaintext password against the user's stored hash.
</ApiItem>
<ApiItem href="#authadapterabstractadapter-burnhash" visibility="protected" name="burnHash" returnType="void" params={[]}>
Runs a throwaway password verification against a fixed dummy hash so the
</ApiItem>

### Constants

<ApiItem kind="constant" name="DUMMY_HASH" type="string" default="&quot;$2y$10$YMmGMSXz.5U3bjjJ2qx45uElzUrlaBiS8L70VaVnmsKYFJVcam8gW&quot;">
Dummy bcrypt hash used to equalize timing on the user-not-found path so
a failed lookup costs the same as a real password check (prevents
login-timing user enumeration).
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="config" type="AdapterConfig" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="hasher" type="Security" default="">
</ApiItem>

### Methods

<h4 id="authadapterabstractadapter-__construct"><code>__construct()</code></h4>

```php
public function __construct(
Security $hasher,
AdapterConfig $config
);
```

<h4 id="authadapterabstractadapter-getconfig"><code>getConfig()</code></h4>

```php
public function getConfig(): AdapterConfig;
```

Returns the adapter configuration object.

<h4 id="authadapterabstractadapter-getmodel"><code>getModel()</code></h4>

```php
public function getModel(): string|null;
```

Returns the model class name, if configured.

<h4 id="authadapterabstractadapter-validatecredentials"><code>validateCredentials()</code></h4>

```php
public function validateCredentials(
AuthUser $user,
array $credentials
): bool;
```

Validates the supplied plaintext password against the user's stored hash.
Concrete adapters share this implementation; if your data source needs
a different verification strategy, override it.

<h4 id="authadapterabstractadapter-burnhash"><code>burnHash()</code></h4>

```php
protected function burnHash(): void;
```

Runs a throwaway password verification against a fixed dummy hash so the
user-not-found path performs the same hash work as a found path. Call it
when a credential lookup misses to keep response time constant.

## Auth\Adapter\AbstractArrayAdapter

Abstract

Common base for adapters whose user records come from an in-memory list
(Memory and Stream). Subclasses provide the row source via loadUsers();
everything else - credentials matching, hydration, the empty-credentials
guard, and a default linear retrieveById - is shared here.

@template TConfig of AdapterConfig
@extends AbstractAdapter&lt;TConfig>

- [`Phalcon\Auth\Adapter\AbstractAdapter`](#authadapterabstractadapter)
- **`Phalcon\Auth\Adapter\AbstractArrayAdapter`**
- [`Phalcon\Auth\Adapter\Memory`](#authadaptermemory)
- [`Phalcon\Auth\Adapter\Stream`](#authadapterstream)

`Phalcon\Auth\AuthUser` · `Phalcon\Auth\Exceptions\DoesNotImplement` · `Phalcon\Contracts\Auth\Adapter\AdapterConfig` · `Phalcon\Contracts\Auth\AuthUser`

### Method Summary

<ApiItem href="#authadapterabstractarrayadapter-retrievebycredentials" visibility="public" name="retrieveByCredentials" returnType="AuthUserContract|null" params={[{"type":"array","name":"credentials","default":null}]}>
Walks the user list and returns the first row whose non-'password'
</ApiItem>
<ApiItem href="#authadapterabstractarrayadapter-retrievebyid" visibility="public" name="retrieveById" returnType="AuthUserContract|null" params={[{"type":"mixed","name":"id","default":null}]}>
Default linear-scan implementation. Memory overrides this for an O(1)
</ApiItem>
<ApiItem href="#authadapterabstractarrayadapter-hasidentifyingfield" visibility="protected" name="hasIdentifyingField" returnType="bool" params={[{"type":"array","name":"credentials","default":null}]}>
Tests whether a credentials payload carries at least one identifying
</ApiItem>
<ApiItem href="#authadapterabstractarrayadapter-hydrate" visibility="protected" name="hydrate" returnType="AuthUserContract" params={[{"type":"array","name":"row","default":null}]}>
Hydrates a raw user row into either the configured model class or a
</ApiItem>
<ApiItem href="#authadapterabstractarrayadapter-loadusers" visibility="protected" name="loadUsers" returnType="array" params={[]}>
Returns the source list of user rows. Concrete subclasses decide
</ApiItem>
<ApiItem href="#authadapterabstractarrayadapter-matchesrow" visibility="protected" name="matchesRow" returnType="bool" params={[{"type":"array","name":"row","default":null},{"type":"array","name":"credentials","default":null}]}>
Per-key match of a row against credentials, skipping 'password'. Values
</ApiItem>

### Methods

<h4 id="authadapterabstractarrayadapter-retrievebycredentials"><code>retrieveByCredentials()</code></h4>

```php
public function retrieveByCredentials( array $credentials ): AuthUserContract|null;
```

Walks the user list and returns the first row whose non-'password'
keys all match strictly. Returns null when no row matches or when
$credentials carries no identifying field at all (only 'password',
or empty) - protects callers from the silent "first row wins" footgun.

<h4 id="authadapterabstractarrayadapter-retrievebyid"><code>retrieveById()</code></h4>

```php
public function retrieveById( mixed $id ): AuthUserContract|null;
```

Default linear-scan implementation. Memory overrides this for an O(1)
id-keyed lookup; Stream uses this as-is.

<h4 id="authadapterabstractarrayadapter-hasidentifyingfield"><code>hasIdentifyingField()</code></h4>

```php
protected function hasIdentifyingField( array $credentials ): bool;
```

Tests whether a credentials payload carries at least one identifying
field (i.e. anything other than 'password'). An empty payload - or a
payload that only contains 'password' - is treated as "no lookup".

<h4 id="authadapterabstractarrayadapter-hydrate"><code>hydrate()</code></h4>

```php
protected function hydrate( array $row ): AuthUserContract;
```

Hydrates a raw user row into either the configured model class or a
Phalcon\Auth\AuthUser value object.

<h4 id="authadapterabstractarrayadapter-loadusers"><code>loadUsers()</code></h4>

```php
abstract protected function loadUsers(): array;
```

Returns the source list of user rows. Concrete subclasses decide
where they come from (config array, JSON file, etc.).

<h4 id="authadapterabstractarrayadapter-matchesrow"><code>matchesRow()</code></h4>

```php
protected function matchesRow(
array $row,
array $credentials
): bool;
```

Per-key match of a row against credentials, skipping 'password'. Values
are compared as strings so typed row values (e.g. int id, bool active)
match the string input that arrives from an HTTP request.

## Auth\Adapter\AdapterLocator

Class

Service locator for Phalcon\Auth adapters. Utilizes the container to
obtain the service. For the Phalcon\Container\Container one can use
autowiring. For the Phalcon\Di\Di, one needs to register the gates in it
to be used here.

@extends AbstractLocator&lt;Adapter>

- [`Phalcon\Support\AbstractLocator`](/5.20/api/phalcon_support/#supportabstractlocator)
- **`Phalcon\Auth\Adapter\AdapterLocator`**

`Phalcon\Auth\Exception` · `Phalcon\Contracts\Auth\Adapter\Adapter` · `Phalcon\Support\AbstractLocator`

### Method Summary

<ApiItem href="#authadapteradapterlocator-getexceptionclass" visibility="protected" name="getExceptionClass" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authadapteradapterlocator-getinterfaceclass" visibility="protected" name="getInterfaceClass" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authadapteradapterlocator-getservices" visibility="protected" name="getServices" returnType="array" params={[]}>
</ApiItem>

### Methods

<h4 id="authadapteradapterlocator-getexceptionclass"><code>getExceptionClass()</code></h4>

```php
protected function getExceptionClass(): string;
```

<h4 id="authadapteradapterlocator-getinterfaceclass"><code>getInterfaceClass()</code></h4>

```php
protected function getInterfaceClass(): string;
```

<h4 id="authadapteradapterlocator-getservices"><code>getServices()</code></h4>

```php
protected function getServices(): array;
```

## Auth\Adapter\Config\AbstractAdapterConfig

Abstract

@todo Remove in v7. Kept only for backwards compatibility; compose
Phalcon\Auth\Adapter\Config\Traits\ModelConfigTrait directly instead of
extending this.

- **`Phalcon\Auth\Adapter\Config\AbstractAdapterConfig`** - implements [`Phalcon\Contracts\Auth\Adapter\AdapterConfig`](/5.20/api/phalcon_contracts/#contractsauthadapteradapterconfig)
- [`Phalcon\Auth\Adapter\Config\MemoryAdapterConfig`](#authadapterconfigmemoryadapterconfig)
- [`Phalcon\Auth\Adapter\Config\ModelAdapterConfig`](#authadapterconfigmodeladapterconfig)
- [`Phalcon\Auth\Adapter\Config\StreamAdapterConfig`](#authadapterconfigstreamadapterconfig)

`Phalcon\Auth\Adapter\Config\Traits\ModelConfigTrait` · `Phalcon\Contracts\Auth\Adapter\AdapterConfig`

### Method Summary

<ApiItem href="#authadapterconfigabstractadapterconfig-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string|null","name":"model","default":"null"}]}>
</ApiItem>

### Methods

<h4 id="authadapterconfigabstractadapterconfig-__construct"><code>__construct()</code></h4>

```php
public function __construct( string|null $model = null );
```

## Auth\Adapter\Config\MemoryAdapterConfig

Class

- [`Phalcon\Auth\Adapter\Config\AbstractAdapterConfig`](#authadapterconfigabstractadapterconfig)
- **`Phalcon\Auth\Adapter\Config\MemoryAdapterConfig`**

### Method Summary

<ApiItem href="#authadapterconfigmemoryadapterconfig-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"array","name":"users","default":"[]"},{"type":"string|null","name":"model","default":"null"}]}>
</ApiItem>
<ApiItem href="#authadapterconfigmemoryadapterconfig-getusers" visibility="public" name="getUsers" returnType="array" params={[]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="users" type="array" default="[]">
</ApiItem>

### Methods

<h4 id="authadapterconfigmemoryadapterconfig-__construct"><code>__construct()</code></h4>

```php
public function __construct(
array $users = [],
string|null $model = null
);
```

<h4 id="authadapterconfigmemoryadapterconfig-getusers"><code>getUsers()</code></h4>

```php
public function getUsers(): array;
```

## Auth\Adapter\Config\ModelAdapterConfig

Class

- [`Phalcon\Auth\Adapter\Config\AbstractAdapterConfig`](#authadapterconfigabstractadapterconfig)
- **`Phalcon\Auth\Adapter\Config\ModelAdapterConfig`**

`Phalcon\Auth\Exception` · `Phalcon\Auth\Exceptions\ConfigRequiresNonEmptyValue`

### Method Summary

<ApiItem href="#authadapterconfigmodeladapterconfig-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"model","default":null},{"type":"string","name":"idColumn","default":"\"id\""}]}>
</ApiItem>
<ApiItem href="#authadapterconfigmodeladapterconfig-getidcolumn" visibility="public" name="getIdColumn" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authadapterconfigmodeladapterconfig-getmodel" visibility="public" name="getModel" returnType="string" params={[]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="idColumn" type="string" default="&quot;id&quot;">
</ApiItem>

### Methods

<h4 id="authadapterconfigmodeladapterconfig-__construct"><code>__construct()</code></h4>

```php
public function __construct(
string $model,
string $idColumn = "id"
);
```

<h4 id="authadapterconfigmodeladapterconfig-getidcolumn"><code>getIdColumn()</code></h4>

```php
public function getIdColumn(): string;
```

<h4 id="authadapterconfigmodeladapterconfig-getmodel"><code>getModel()</code></h4>

```php
public function getModel(): string;
```

## Auth\Adapter\Config\StreamAdapterConfig

Class

- [`Phalcon\Auth\Adapter\Config\AbstractAdapterConfig`](#authadapterconfigabstractadapterconfig)
- **`Phalcon\Auth\Adapter\Config\StreamAdapterConfig`**

`Phalcon\Auth\Exception` · `Phalcon\Auth\Exceptions\ConfigRequiresNonEmptyValue`

### Method Summary

<ApiItem href="#authadapterconfigstreamadapterconfig-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"file","default":null},{"type":"string|null","name":"model","default":"null"}]}>
</ApiItem>
<ApiItem href="#authadapterconfigstreamadapterconfig-getfile" visibility="public" name="getFile" returnType="string" params={[]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="file" type="string" default="">
</ApiItem>

### Methods

<h4 id="authadapterconfigstreamadapterconfig-__construct"><code>__construct()</code></h4>

```php
public function __construct(
string $file,
string|null $model = null
);
```

<h4 id="authadapterconfigstreamadapterconfig-getfile"><code>getFile()</code></h4>

```php
public function getFile(): string;
```

## Auth\Adapter\Config\Traits\ModelConfigTrait

Trait

Shared model-name state and accessor for auth adapter configurations.

- **`Phalcon\Auth\Adapter\Config\Traits\ModelConfigTrait`**

[`Phalcon\Auth\Adapter\Config\AbstractAdapterConfig`](#authadapterconfigabstractadapterconfig)

### Method Summary

<ApiItem href="#authadapterconfigtraitsmodelconfigtrait-getmodel" visibility="public" name="getModel" returnType="string|null" params={[]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="model" type="string|null" default="null">
</ApiItem>

### Methods

<h4 id="authadapterconfigtraitsmodelconfigtrait-getmodel"><code>getModel()</code></h4>

```php
public function getModel(): string|null;
```

## Auth\Adapter\Memory

Class

In-memory adapter - useful for tests and small read-only user lists.

@extends AbstractArrayAdapter&lt;MemoryAdapterConfig>

- [`Phalcon\Auth\Adapter\AbstractAdapter`](#authadapterabstractadapter)
- [`Phalcon\Auth\Adapter\AbstractArrayAdapter`](#authadapterabstractarrayadapter)
- **`Phalcon\Auth\Adapter\Memory`**

`Phalcon\Auth\Adapter\Config\MemoryAdapterConfig` · `Phalcon\Auth\Internal\Options` · `Phalcon\Contracts\Auth\AuthUser` · `Phalcon\Contracts\Encryption\Security\Security`

### Method Summary

<ApiItem href="#authadaptermemory-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"Security","name":"hasher","default":null},{"type":"MemoryAdapterConfig","name":"config","default":null}]}>
</ApiItem>
<ApiItem href="#authadaptermemory-fromoptions" visibility="public" name="fromOptions" returnType="static" params={[{"type":"Security","name":"hasher","default":null},{"type":"array","name":"options","default":null}]}>
</ApiItem>
<ApiItem href="#authadaptermemory-retrievebyid" visibility="public" name="retrieveById" returnType="AuthUser|null" params={[{"type":"mixed","name":"id","default":null}]}>
Overridden for O(1) lookup via the id index built in the constructor.
</ApiItem>
<ApiItem href="#authadaptermemory-loadusers" visibility="protected" name="loadUsers" returnType="array" params={[]}>
</ApiItem>

### Methods

<h4 id="authadaptermemory-__construct"><code>__construct()</code></h4>

```php
public function __construct(
Security $hasher,
MemoryAdapterConfig $config
);
```

<h4 id="authadaptermemory-fromoptions"><code>fromOptions()</code></h4>

```php
public static function fromOptions(
Security $hasher,
array $options
): static;
```

<h4 id="authadaptermemory-retrievebyid"><code>retrieveById()</code></h4>

```php
public function retrieveById( mixed $id ): AuthUser|null;
```

Overridden for O(1) lookup via the id index built in the constructor.

<h4 id="authadaptermemory-loadusers"><code>loadUsers()</code></h4>

```php
protected function loadUsers(): array;
```

## Auth\Adapter\Model

Class

Phalcon Model-backed adapter.

@extends AbstractAdapter&lt;ModelAdapterConfig>

- [`Phalcon\Auth\Adapter\AbstractAdapter`](#authadapterabstractadapter)
- **`Phalcon\Auth\Adapter\Model`** - implements [`Phalcon\Contracts\Auth\Adapter\RememberAdapter`](/5.20/api/phalcon_contracts/#contractsauthadapterrememberadapter)

`Phalcon\Auth\Adapter\Config\ModelAdapterConfig` · `Phalcon\Auth\Exception` · `Phalcon\Auth\Exceptions\DoesNotImplement` · `Phalcon\Auth\Exceptions\InvalidCredentialKey` · `Phalcon\Auth\Internal\Options` · `Phalcon\Contracts\Auth\Adapter\RememberAdapter` · `Phalcon\Contracts\Auth\AuthRemember` · `Phalcon\Contracts\Auth\AuthUser` · `Phalcon\Contracts\Auth\RememberToken` · `Phalcon\Contracts\Encryption\Security\Security` · `Phalcon\Mvc\ModelInterface`

### Method Summary

<ApiItem href="#authadaptermodel-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"Security","name":"hasher","default":null},{"type":"ModelAdapterConfig","name":"config","default":null}]}>
</ApiItem>
<ApiItem href="#authadaptermodel-createremembertoken" visibility="public" name="createRememberToken" returnType="RememberToken" params={[{"type":"AuthUser","name":"user","default":null}]}>
Create and persist a new remember token for the user.
</ApiItem>
<ApiItem href="#authadaptermodel-fromoptions" visibility="public" name="fromOptions" returnType="static" params={[{"type":"Security","name":"hasher","default":null},{"type":"array","name":"options","default":null}]}>
</ApiItem>
<ApiItem href="#authadaptermodel-retrievebycredentials" visibility="public" name="retrieveByCredentials" returnType="AuthUser|null" params={[{"type":"array","name":"credentials","default":null}]}>
Find a user matching the given credentials (excluding 'password' key).
</ApiItem>
<ApiItem href="#authadaptermodel-retrievebyid" visibility="public" name="retrieveById" returnType="AuthUser|null" params={[{"type":"mixed","name":"id","default":null}]}>
</ApiItem>
<ApiItem href="#authadaptermodel-retrievebytoken" visibility="public" name="retrieveByToken" returnType="AuthUser|null" params={[{"type":"mixed","name":"id","default":null},{"type":"string","name":"token","default":null},{"type":"string|null","name":"userAgent","default":"null"}]}>
Retrieve a user by the remember-me cookie payload.
</ApiItem>

### Methods

<h4 id="authadaptermodel-__construct"><code>__construct()</code></h4>

```php
public function __construct(
Security $hasher,
ModelAdapterConfig $config
);
```

<h4 id="authadaptermodel-createremembertoken"><code>createRememberToken()</code></h4>

```php
public function createRememberToken( AuthUser $user ): RememberToken;
```

Create and persist a new remember token for the user.

<h4 id="authadaptermodel-fromoptions"><code>fromOptions()</code></h4>

```php
public static function fromOptions(
Security $hasher,
array $options
): static;
```

<h4 id="authadaptermodel-retrievebycredentials"><code>retrieveByCredentials()</code></h4>

```php
public function retrieveByCredentials( array $credentials ): AuthUser|null;
```

Find a user matching the given credentials (excluding 'password' key).

<h4 id="authadaptermodel-retrievebyid"><code>retrieveById()</code></h4>

```php
public function retrieveById( mixed $id ): AuthUser|null;
```

<h4 id="authadaptermodel-retrievebytoken"><code>retrieveByToken()</code></h4>

```php
public function retrieveByToken(
mixed $id,
string $token,
string|null $userAgent = null
): AuthUser|null;
```

Retrieve a user by the remember-me cookie payload.

## Auth\Adapter\Stream

Class

JSON file-backed adapter.

The file must contain a JSON array of user records:
  [\{"id":1,"email":"a@b","password":"&lt;hashed>"\}, ...]

@extends AbstractArrayAdapter&lt;StreamAdapterConfig>

- [`Phalcon\Auth\Adapter\AbstractAdapter`](#authadapterabstractadapter)
- [`Phalcon\Auth\Adapter\AbstractArrayAdapter`](#authadapterabstractarrayadapter)
- **`Phalcon\Auth\Adapter\Stream`**

`InvalidArgumentException` · `Phalcon\Auth\Adapter\Config\StreamAdapterConfig` · `Phalcon\Auth\Exception` · `Phalcon\Auth\Exceptions\FileCannotRead` · `Phalcon\Auth\Exceptions\FileDoesNotContainJson` · `Phalcon\Auth\Exceptions\FileDoesNotExist` · `Phalcon\Auth\Exceptions\FileNotValidJson` · `Phalcon\Auth\Internal\Options` · `Phalcon\Contracts\Encryption\Security\Security` · `Phalcon\Support\Helper\Json\Decode` · `Phalcon\Traits\Php\FileTrait`

### Method Summary

<ApiItem href="#authadapterstream-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"Security","name":"hasher","default":null},{"type":"StreamAdapterConfig","name":"config","default":null}]}>
</ApiItem>
<ApiItem href="#authadapterstream-fromoptions" visibility="public" name="fromOptions" returnType="static" params={[{"type":"Security","name":"hasher","default":null},{"type":"array","name":"options","default":null}]}>
</ApiItem>
<ApiItem href="#authadapterstream-loadusers" visibility="protected" name="loadUsers" returnType="array" params={[]}>
Loads and decodes the JSON users file. Re-read on every call - if you
</ApiItem>

### Methods

<h4 id="authadapterstream-__construct"><code>__construct()</code></h4>

```php
public function __construct(
Security $hasher,
StreamAdapterConfig $config
);
```

<h4 id="authadapterstream-fromoptions"><code>fromOptions()</code></h4>

```php
public static function fromOptions(
Security $hasher,
array $options
): static;
```

<h4 id="authadapterstream-loadusers"><code>loadUsers()</code></h4>

```php
protected function loadUsers(): array;
```

Loads and decodes the JSON users file. Re-read on every call - if you
need caching, wrap it.

## Auth\AuthUser

Class

Lightweight value object returned by array-backed adapters (Memory, Stream)
when no application model class is configured.

- **`Phalcon\Auth\AuthUser`** - implements [`Phalcon\Contracts\Auth\AuthUser`](/5.20/api/phalcon_contracts/#contractsauthauthuser)

`Phalcon\Auth\Exceptions\DataMustContainIdKey` · `Phalcon\Contracts\Auth\AuthUser`

### Method Summary

<ApiItem href="#authauthuser-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"array","name":"data","default":null}]}>
</ApiItem>
<ApiItem href="#authauthuser-getauthidentifier" visibility="public" name="getAuthIdentifier" returnType="int|string" params={[]}>
</ApiItem>
<ApiItem href="#authauthuser-getauthpassword" visibility="public" name="getAuthPassword" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authauthuser-toarray" visibility="public" name="toArray" returnType="array" params={[]}>
Returns the underlying data array.
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="data" type="array" default="">
</ApiItem>

### Methods

<h4 id="authauthuser-__construct"><code>__construct()</code></h4>

```php
public function __construct( array $data );
```

<h4 id="authauthuser-getauthidentifier"><code>getAuthIdentifier()</code></h4>

```php
public function getAuthIdentifier(): int|string;
```

<h4 id="authauthuser-getauthpassword"><code>getAuthPassword()</code></h4>

```php
public function getAuthPassword(): string;
```

<h4 id="authauthuser-toarray"><code>toArray()</code></h4>

```php
public function toArray(): array;
```

Returns the underlying data array.

## Auth\Cli\AuthDispatcherListener

Class

- [`Phalcon\Auth\AbstractAuthDispatcherListener`](#authabstractauthdispatcherlistener)
- **`Phalcon\Auth\Cli\AuthDispatcherListener`**

`Phalcon\Auth\AbstractAuthDispatcherListener` · `Phalcon\Auth\Exception` · `Phalcon\Cli\Dispatcher` · `Phalcon\Events\Event`

### Method Summary

<ApiItem href="#authcliauthdispatcherlistener-beforeexecuteroute" visibility="public" name="beforeExecuteRoute" returnType="bool" params={[{"type":"Event","name":"event","default":null},{"type":"Dispatcher","name":"dispatcher","default":null}]}>
</ApiItem>
<ApiItem href="#authcliauthdispatcherlistener-getactiontype" visibility="protected" name="getActionType" returnType="string" params={[]}>
</ApiItem>

### Methods

<h4 id="authcliauthdispatcherlistener-beforeexecuteroute"><code>beforeExecuteRoute()</code></h4>

```php
public function beforeExecuteRoute(
Event $event,
Dispatcher $dispatcher
): bool;
```

<h4 id="authcliauthdispatcherlistener-getactiontype"><code>getActionType()</code></h4>

```php
protected function getActionType(): string;
```

## Auth\Exception

Class

Exceptions thrown in Phalcon\Auth will use this class

- `\Exception`
- **`Phalcon\Auth\Exception`**
- [`Phalcon\Auth\Exceptions\AccessDenied`](#authexceptionsaccessdenied)
- [`Phalcon\Auth\Exceptions\AccessNotRegistered`](#authexceptionsaccessnotregistered)
- [`Phalcon\Auth\Exceptions\ActiveAccessRequired`](#authexceptionsactiveaccessrequired)
- [`Phalcon\Auth\Exceptions\ConfigRequiresNonEmptyValue`](#authexceptionsconfigrequiresnonemptyvalue)
- [`Phalcon\Auth\Exceptions\DataMustContainIdKey`](#authexceptionsdatamustcontainidkey)
- [`Phalcon\Auth\Exceptions\DefaultGuardNotRegistered`](#authexceptionsdefaultguardnotregistered)
- [`Phalcon\Auth\Exceptions\DoesNotImplement`](#authexceptionsdoesnotimplement)
- [`Phalcon\Auth\Exceptions\FileCannotRead`](#authexceptionsfilecannotread)
- [`Phalcon\Auth\Exceptions\FileDoesNotContainJson`](#authexceptionsfiledoesnotcontainjson)
- [`Phalcon\Auth\Exceptions\FileDoesNotExist`](#authexceptionsfiledoesnotexist)
- [`Phalcon\Auth\Exceptions\FileNotValidJson`](#authexceptionsfilenotvalidjson)
- [`Phalcon\Auth\Exceptions\GuardNotDefined`](#authexceptionsguardnotdefined)
- [`Phalcon\Auth\Exceptions\InvalidCredentialKey`](#authexceptionsinvalidcredentialkey)
- [`Phalcon\Auth\Exceptions\MissingHandlerContext`](#authexceptionsmissinghandlercontext)
- [`Phalcon\Auth\Exceptions\OptionRequiresArray`](#authexceptionsoptionrequiresarray)
- [`Phalcon\Auth\Exceptions\OptionRequiresString`](#authexceptionsoptionrequiresstring)
- [`Phalcon\Auth\Exceptions\SessionNamesMustDiffer`](#authexceptionssessionnamesmustdiffer)
- [`Phalcon\Auth\Exceptions\UnknownAdapter`](#authexceptionsunknownadapter)
- [`Phalcon\Auth\Exceptions\UnknownGuard`](#authexceptionsunknownguard)

## Auth\Exceptions\AccessDenied

Class

Access denied exception

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\AccessDenied`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsaccessdenied-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"type","default":null},{"type":"string","name":"name","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsaccessdenied-__construct"><code>__construct()</code></h4>

```php
public function __construct(
string $type,
string $name
);
```

## Auth\Exceptions\AccessNotRegistered

Class

Access gate name is not registered

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\AccessNotRegistered`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsaccessnotregistered-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"name","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsaccessnotregistered-__construct"><code>__construct()</code></h4>

```php
public function __construct( string $name );
```

## Auth\Exceptions\ActiveAccessRequired

Class

No active access has been set on the manager

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\ActiveAccessRequired`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsactiveaccessrequired-__construct" visibility="public" name="__construct" returnType="" params={[]}>
</ApiItem>

### Methods

<h4 id="authexceptionsactiveaccessrequired-__construct"><code>__construct()</code></h4>

```php
public function __construct();
```

## Auth\Exceptions\ConfigRequiresNonEmptyValue

Class

Config requires non-empty value

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\ConfigRequiresNonEmptyValue`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsconfigrequiresnonemptyvalue-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"configName","default":null},{"type":"string","name":"configKey","default":null},{"type":"string","name":"suffix","default":"\"\""}]}>
</ApiItem>
<ApiItem href="#authexceptionsconfigrequiresnonemptyvalue-assert" visibility="public" name="assert" returnType="void" params={[{"type":"mixed","name":"value","default":null},{"type":"string","name":"configName","default":null},{"type":"string","name":"configKey","default":null},{"type":"string","name":"suffix","default":"\"\""}]}>
Throws when the value is an empty string. A null value is treated as
</ApiItem>

### Methods

<h4 id="authexceptionsconfigrequiresnonemptyvalue-__construct"><code>__construct()</code></h4>

```php
public function __construct(
string $configName,
string $configKey,
string $suffix = ""
);
```

<h4 id="authexceptionsconfigrequiresnonemptyvalue-assert"><code>assert()</code></h4>

```php
public static function assert(
mixed $value,
string $configName,
string $configKey,
string $suffix = ""
): void;
```

Throws when the value is an empty string. A null value is treated as
"not provided" and passes, so optional settings can reuse the same
guard; callers that require presence reject null earlier. Keeps the
empty-value check shared by every config class in one place.

## Auth\Exceptions\DataMustContainIdKey

Class

AuthUser data must contain "id"

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\DataMustContainIdKey`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsdatamustcontainidkey-__construct" visibility="public" name="__construct" returnType="" params={[]}>
</ApiItem>

### Methods

<h4 id="authexceptionsdatamustcontainidkey-__construct"><code>__construct()</code></h4>

```php
public function __construct();
```

## Auth\Exceptions\DefaultGuardNotRegistered

Class

No default guard registered

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\DefaultGuardNotRegistered`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsdefaultguardnotregistered-__construct" visibility="public" name="__construct" returnType="" params={[]}>
</ApiItem>

### Methods

<h4 id="authexceptionsdefaultguardnotregistered-__construct"><code>__construct()</code></h4>

```php
public function __construct();
```

## Auth\Exceptions\DoesNotImplement

Class

Does not implement interface

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\DoesNotImplement`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsdoesnotimplement-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"type","default":null},{"type":"string","name":"name","default":null}]}>
</ApiItem>
<ApiItem href="#authexceptionsdoesnotimplement-assert" visibility="public" name="assert" returnType="void" params={[{"type":"mixed","name":"value","default":null},{"type":"string","name":"interfaceName","default":null},{"type":"string","name":"type","default":null},{"type":"string","name":"name","default":null}]}>
Throws when value is not an instance of the given interface. Keeps the
</ApiItem>

### Methods

<h4 id="authexceptionsdoesnotimplement-__construct"><code>__construct()</code></h4>

```php
public function __construct(
string $type,
string $name
);
```

<h4 id="authexceptionsdoesnotimplement-assert"><code>assert()</code></h4>

```php
public static function assert(
mixed $value,
string $interfaceName,
string $type,
string $name
): void;
```

Throws when value is not an instance of the given interface. Keeps the
"must implement" guard shared across adapters, guards and the manager
in one place.

## Auth\Exceptions\FileCannotRead

Class

Cannot read file

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\FileCannotRead`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsfilecannotread-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"path","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsfilecannotread-__construct"><code>__construct()</code></h4>

```php
public function __construct( string $path );
```

## Auth\Exceptions\FileDoesNotContainJson

Class

File does not contain a JSON array

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\FileDoesNotContainJson`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsfiledoesnotcontainjson-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"path","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsfiledoesnotcontainjson-__construct"><code>__construct()</code></h4>

```php
public function __construct( string $path );
```

## Auth\Exceptions\FileDoesNotExist

Class

File does not exist

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\FileDoesNotExist`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsfiledoesnotexist-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"path","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsfiledoesnotexist-__construct"><code>__construct()</code></h4>

```php
public function __construct( string $path );
```

## Auth\Exceptions\FileNotValidJson

Class

Not a valid JSON

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\FileNotValidJson`**

`Phalcon\Auth\Exception` · `Throwable`

### Method Summary

<ApiItem href="#authexceptionsfilenotvalidjson-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"path","default":null},{"type":"Throwable","name":"ex","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsfilenotvalidjson-__construct"><code>__construct()</code></h4>

```php
public function __construct(
string $path,
Throwable $ex
);
```

## Auth\Exceptions\GuardNotDefined

Class

Guard name is not defined on the manager

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\GuardNotDefined`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsguardnotdefined-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"name","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsguardnotdefined-__construct"><code>__construct()</code></h4>

```php
public function __construct( string $name );
```

## Auth\Exceptions\InvalidCredentialKey

Class

A credential key is not a plain identifier and cannot be used as a query
column

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\InvalidCredentialKey`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsinvalidcredentialkey-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"key","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsinvalidcredentialkey-__construct"><code>__construct()</code></h4>

```php
public function __construct( string $key );
```

## Auth\Exceptions\MissingHandlerContext

Class

The Acl access gate is missing the required 'handler' context key

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\MissingHandlerContext`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsmissinghandlercontext-__construct" visibility="public" name="__construct" returnType="" params={[]}>
</ApiItem>

### Methods

<h4 id="authexceptionsmissinghandlercontext-__construct"><code>__construct()</code></h4>

```php
public function __construct();
```

## Auth\Exceptions\OptionRequiresArray

Class

Option must be a non-empty array

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\OptionRequiresArray`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsoptionrequiresarray-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"context","default":null},{"type":"string","name":"key","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsoptionrequiresarray-__construct"><code>__construct()</code></h4>

```php
public function __construct(
string $context,
string $key
);
```

## Auth\Exceptions\OptionRequiresString

Class

Option must be a non-empty string

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\OptionRequiresString`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsoptionrequiresstring-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"context","default":null},{"type":"string","name":"key","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsoptionrequiresstring-__construct"><code>__construct()</code></h4>

```php
public function __construct(
string $context,
string $key
);
```

## Auth\Exceptions\SessionNamesMustDiffer

Class

Session guard 'name' and 'rememberName' must differ

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\SessionNamesMustDiffer`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionssessionnamesmustdiffer-__construct" visibility="public" name="__construct" returnType="" params={[]}>
</ApiItem>

### Methods

<h4 id="authexceptionssessionnamesmustdiffer-__construct"><code>__construct()</code></h4>

```php
public function __construct();
```

## Auth\Exceptions\UnknownAdapter

Class

Unknown auth adapter requested from the factory

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\UnknownAdapter`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsunknownadapter-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"name","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsunknownadapter-__construct"><code>__construct()</code></h4>

```php
public function __construct( string $name );
```

## Auth\Exceptions\UnknownGuard

Class

Unknown auth guard type requested from the factory

- `\Exception`
- [`Phalcon\Auth\Exception`](#authexception)
- **`Phalcon\Auth\Exceptions\UnknownGuard`**

`Phalcon\Auth\Exception`

### Method Summary

<ApiItem href="#authexceptionsunknownguard-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"type","default":null}]}>
</ApiItem>

### Methods

<h4 id="authexceptionsunknownguard-__construct"><code>__construct()</code></h4>

```php
public function __construct( string $type );
```

## Auth\Guard\AbstractGuard

Abstract

@template TConfig of GuardConfig

- **`Phalcon\Auth\Guard\AbstractGuard`** - implements [`Phalcon\Contracts\Auth\Guard\Guard`](/5.20/api/phalcon_contracts/#contractsauthguardguard)
- [`Phalcon\Auth\Guard\Session`](#authguardsession)
- [`Phalcon\Auth\Guard\Token`](#authguardtoken)

`Phalcon\Contracts\Auth\Adapter\Adapter` · `Phalcon\Contracts\Auth\AuthUser` · `Phalcon\Contracts\Auth\Guard\Guard` · `Phalcon\Contracts\Auth\Guard\GuardConfig` · `Phalcon\Events\ManagerInterface` · `Phalcon\Events\Traits\EventsAwareTrait`

### Method Summary

<ApiItem href="#authguardabstractguard-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"Adapter","name":"adapter","default":null},{"type":"GuardConfig","name":"config","default":null}]}>
</ApiItem>
<ApiItem href="#authguardabstractguard-check" visibility="public" name="check" returnType="bool" params={[]}>
</ApiItem>
<ApiItem href="#authguardabstractguard-getadapter" visibility="public" name="getAdapter" returnType="Adapter" params={[]}>
</ApiItem>
<ApiItem href="#authguardabstractguard-getconfig" visibility="public" name="getConfig" returnType="GuardConfig" params={[]}>
Returns the guard configuration object.
</ApiItem>
<ApiItem href="#authguardabstractguard-getlastuserattempted" visibility="public" name="getLastUserAttempted" returnType="AuthUser|null" params={[]}>
</ApiItem>
<ApiItem href="#authguardabstractguard-guest" visibility="public" name="guest" returnType="bool" params={[]}>
</ApiItem>
<ApiItem href="#authguardabstractguard-hasuser" visibility="public" name="hasUser" returnType="bool" params={[]}>
</ApiItem>
<ApiItem href="#authguardabstractguard-id" visibility="public" name="id" returnType="int|string|null" params={[]}>
</ApiItem>
<ApiItem href="#authguardabstractguard-setadapter" visibility="public" name="setAdapter" returnType="static" params={[{"type":"Adapter","name":"adapter","default":null}]}>
</ApiItem>
<ApiItem href="#authguardabstractguard-setuser" visibility="public" name="setUser" returnType="static" params={[{"type":"AuthUser","name":"user","default":null}]}>
</ApiItem>
<ApiItem href="#authguardabstractguard-hasvalidcredentials" visibility="protected" name="hasValidCredentials" returnType="bool" params={[{"type":"mixed","name":"user","default":null},{"type":"array","name":"credentials","default":null}]}>
user should be ?AuthUser
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="adapter" type="Adapter" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="config" type="GuardConfig" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="lastUserAttempted" type="AuthUser|null" default="null">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="user" type="AuthUser|null" default="null">
</ApiItem>

### Methods

<h4 id="authguardabstractguard-__construct"><code>__construct()</code></h4>

```php
public function __construct(
Adapter $adapter,
GuardConfig $config
);
```

<h4 id="authguardabstractguard-check"><code>check()</code></h4>

```php
public function check(): bool;
```

<h4 id="authguardabstractguard-getadapter"><code>getAdapter()</code></h4>

```php
public function getAdapter(): Adapter;
```

<h4 id="authguardabstractguard-getconfig"><code>getConfig()</code></h4>

```php
public function getConfig(): GuardConfig;
```

Returns the guard configuration object.

<h4 id="authguardabstractguard-getlastuserattempted"><code>getLastUserAttempted()</code></h4>

```php
public function getLastUserAttempted(): AuthUser|null;
```

<h4 id="authguardabstractguard-guest"><code>guest()</code></h4>

```php
public function guest(): bool;
```

<h4 id="authguardabstractguard-hasuser"><code>hasUser()</code></h4>

```php
public function hasUser(): bool;
```

<h4 id="authguardabstractguard-id"><code>id()</code></h4>

```php
public function id(): int|string|null;
```

<h4 id="authguardabstractguard-setadapter"><code>setAdapter()</code></h4>

```php
public function setAdapter( Adapter $adapter ): static;
```

<h4 id="authguardabstractguard-setuser"><code>setUser()</code></h4>

```php
public function setUser( AuthUser $user ): static;
```

<h4 id="authguardabstractguard-hasvalidcredentials"><code>hasValidCredentials()</code></h4>

```php
protected function hasValidCredentials(
mixed $user,
array $credentials
): bool;
```

user should be ?AuthUser

## Auth\Guard\Config\AbstractGuardConfig

Abstract

- **`Phalcon\Auth\Guard\Config\AbstractGuardConfig`** - implements [`Phalcon\Contracts\Auth\Guard\GuardConfig`](/5.20/api/phalcon_contracts/#contractsauthguardguardconfig)
- [`Phalcon\Auth\Guard\Config\SessionGuardConfig`](#authguardconfigsessionguardconfig)
- [`Phalcon\Auth\Guard\Config\TokenGuardConfig`](#authguardconfigtokenguardconfig)

`Phalcon\Contracts\Auth\Guard\GuardConfig`

## Auth\Guard\Config\SessionGuardConfig

Class

Configuration for the Session guard. Holds the names under which the
session key and remember-me cookie are stored. Defaults to 'auth' and
'remember'; multi-guard apps can pass a $suffix ('web', 'admin', ...)
to derive 'auth_web' / 'remember_web' style names, or override either
full name explicitly.

- [`Phalcon\Auth\Guard\Config\AbstractGuardConfig`](#authguardconfigabstractguardconfig)
- **`Phalcon\Auth\Guard\Config\SessionGuardConfig`**

`Phalcon\Auth\Exception` · `Phalcon\Auth\Exceptions\ConfigRequiresNonEmptyValue` · `Phalcon\Auth\Exceptions\SessionNamesMustDiffer`

### Method Summary

<ApiItem href="#authguardconfigsessionguardconfig-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string|null","name":"suffix","default":"null"},{"type":"string|null","name":"name","default":"null"},{"type":"string|null","name":"rememberName","default":"null"},{"type":"int|null","name":"rememberTtl","default":"null"},{"type":"bool","name":"rememberSecure","default":"true"}]}>
</ApiItem>
<ApiItem href="#authguardconfigsessionguardconfig-getname" visibility="public" name="getName" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authguardconfigsessionguardconfig-getremembername" visibility="public" name="getRememberName" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authguardconfigsessionguardconfig-getremembersecure" visibility="public" name="getRememberSecure" returnType="bool" params={[]}>
Whether the remember-me cookie carries the Secure flag. Defaults to
</ApiItem>
<ApiItem href="#authguardconfigsessionguardconfig-getrememberttl" visibility="public" name="getRememberTtl" returnType="int" params={[]}>
</ApiItem>

### Constants

<ApiItem kind="constant" name="DEFAULT_REMEMBER_TTL" type="int" default="31536000">
Default remember-me cookie lifetime, in seconds (365 days).
</ApiItem>

### Methods

<h4 id="authguardconfigsessionguardconfig-__construct"><code>__construct()</code></h4>

```php
public function __construct(
string|null $suffix = null,
string|null $name = null,
string|null $rememberName = null,
int|null $rememberTtl = null,
bool $rememberSecure = true
);
```

<h4 id="authguardconfigsessionguardconfig-getname"><code>getName()</code></h4>

```php
public function getName(): string;
```

<h4 id="authguardconfigsessionguardconfig-getremembername"><code>getRememberName()</code></h4>

```php
public function getRememberName(): string;
```

<h4 id="authguardconfigsessionguardconfig-getremembersecure"><code>getRememberSecure()</code></h4>

```php
public function getRememberSecure(): bool;
```

Whether the remember-me cookie carries the Secure flag. Defaults to
true: the cookie is a bearer credential. Set it to false only for a
deployment that serves plain HTTP on purpose.

<h4 id="authguardconfigsessionguardconfig-getrememberttl"><code>getRememberTtl()</code></h4>

```php
public function getRememberTtl(): int;
```

## Auth\Guard\Config\TokenGuardConfig

Class

- [`Phalcon\Auth\Guard\Config\AbstractGuardConfig`](#authguardconfigabstractguardconfig)
- **`Phalcon\Auth\Guard\Config\TokenGuardConfig`**

`Phalcon\Auth\Exception` · `Phalcon\Auth\Exceptions\ConfigRequiresNonEmptyValue`

### Method Summary

<ApiItem href="#authguardconfigtokenguardconfig-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"string","name":"inputKey","default":null},{"type":"string","name":"storageKey","default":null}]}>
</ApiItem>
<ApiItem href="#authguardconfigtokenguardconfig-getinputkey" visibility="public" name="getInputKey" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authguardconfigtokenguardconfig-getstoragekey" visibility="public" name="getStorageKey" returnType="string" params={[]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="inputKey" type="string" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="storageKey" type="string" default="">
</ApiItem>

### Methods

<h4 id="authguardconfigtokenguardconfig-__construct"><code>__construct()</code></h4>

```php
public function __construct(
string $inputKey,
string $storageKey
);
```

<h4 id="authguardconfigtokenguardconfig-getinputkey"><code>getInputKey()</code></h4>

```php
public function getInputKey(): string;
```

<h4 id="authguardconfigtokenguardconfig-getstoragekey"><code>getStorageKey()</code></h4>

```php
public function getStorageKey(): string;
```

## Auth\Guard\GuardLocator

Class

Service locator for Phalcon\Auth guards. Utilizes the container to obtain
the service. For Phalcon\Container\Container one can use autowiring; for
Phalcon\Di\Di, register the guards in it before resolution.

@extends AbstractLocator&lt;Guard>

- [`Phalcon\Support\AbstractLocator`](/5.20/api/phalcon_support/#supportabstractlocator)
- **`Phalcon\Auth\Guard\GuardLocator`**

`Phalcon\Auth\Exception` · `Phalcon\Contracts\Auth\Guard\Guard` · `Phalcon\Support\AbstractLocator`

### Method Summary

<ApiItem href="#authguardguardlocator-getexceptionclass" visibility="protected" name="getExceptionClass" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authguardguardlocator-getinterfaceclass" visibility="protected" name="getInterfaceClass" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authguardguardlocator-getservices" visibility="protected" name="getServices" returnType="array" params={[]}>
</ApiItem>

### Methods

<h4 id="authguardguardlocator-getexceptionclass"><code>getExceptionClass()</code></h4>

```php
protected function getExceptionClass(): string;
```

<h4 id="authguardguardlocator-getinterfaceclass"><code>getInterfaceClass()</code></h4>

```php
protected function getInterfaceClass(): string;
```

<h4 id="authguardguardlocator-getservices"><code>getServices()</code></h4>

```php
protected function getServices(): array;
```

## Auth\Guard\Session

Class

@extends AbstractGuard&lt;SessionGuardConfig>

- [`Phalcon\Auth\Guard\AbstractGuard`](#authguardabstractguard)
- **`Phalcon\Auth\Guard\Session`** - implements [`Phalcon\Contracts\Auth\Guard\GuardStateful`](/5.20/api/phalcon_contracts/#contractsauthguardguardstateful), [`Phalcon\Contracts\Auth\Guard\BasicAuth`](/5.20/api/phalcon_contracts/#contractsauthguardbasicauth)

`Phalcon\Auth\Exception` · `Phalcon\Auth\Exceptions\DoesNotImplement` · `Phalcon\Auth\Guard\Config\SessionGuardConfig` · `Phalcon\Auth\Internal\ContainerResolver` · `Phalcon\Auth\Internal\Options` · `Phalcon\Contracts\Auth\Adapter\Adapter` · `Phalcon\Contracts\Auth\Adapter\RememberAdapter` · `Phalcon\Contracts\Auth\AuthRemember` · `Phalcon\Contracts\Auth\AuthUser` · `Phalcon\Contracts\Auth\Guard\BasicAuth` · `Phalcon\Contracts\Auth\Guard\GuardStateful` · `Phalcon\Contracts\Auth\RememberToken` · `Phalcon\Http\RequestInterface` · `Phalcon\Http\Response\CookiesInterface` · `Phalcon\Session\ManagerInterface` · `Phalcon\Support\Helper\Json\Encode` · `Phalcon\Time\Clock\ClockInterface` · `Phalcon\Time\Clock\SystemClock`

### Method Summary

<ApiItem href="#authguardsession-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"Adapter","name":"adapter","default":null},{"type":"RequestInterface","name":"request","default":null},{"type":"CookiesInterface","name":"cookies","default":null},{"type":"SessionManagerInterface","name":"session","default":null},{"type":"SessionGuardConfig|null","name":"config","default":"null"},{"type":"ClockInterface|null","name":"clock","default":"null"}]}>
</ApiItem>
<ApiItem href="#authguardsession-attempt" visibility="public" name="attempt" returnType="bool" params={[{"type":"array","name":"credentials","default":"[]"},{"type":"bool","name":"remember","default":"false"}]}>
</ApiItem>
<ApiItem href="#authguardsession-basic" visibility="public" name="basic" returnType="bool" params={[{"type":"string","name":"field","default":"\"email\""},{"type":"array","name":"extraConditions","default":"[]"}]}>
</ApiItem>
<ApiItem href="#authguardsession-fromoptions" visibility="public" name="fromOptions" returnType="static" params={[{"type":"Adapter","name":"adapter","default":null},{"type":"mixed","name":"container","default":null},{"type":"array","name":"options","default":null}]}>
</ApiItem>
<ApiItem href="#authguardsession-getname" visibility="public" name="getName" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authguardsession-getremembername" visibility="public" name="getRememberName" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authguardsession-login" visibility="public" name="login" returnType="void" params={[{"type":"AuthUser","name":"user","default":null},{"type":"bool","name":"remember","default":"false"}]}>
</ApiItem>
<ApiItem href="#authguardsession-loginbyid" visibility="public" name="loginById" returnType="AuthUser|false" params={[{"type":"mixed","name":"id","default":null},{"type":"bool","name":"remember","default":"false"}]}>
</ApiItem>
<ApiItem href="#authguardsession-logout" visibility="public" name="logout" returnType="void" params={[]}>
</ApiItem>
<ApiItem href="#authguardsession-once" visibility="public" name="once" returnType="bool" params={[{"type":"array","name":"credentials","default":"[]"}]}>
</ApiItem>
<ApiItem href="#authguardsession-oncebasic" visibility="public" name="onceBasic" returnType="AuthUser|false" params={[{"type":"string","name":"field","default":"\"email\""},{"type":"array","name":"extraConditions","default":"[]"}]}>
</ApiItem>
<ApiItem href="#authguardsession-user" visibility="public" name="user" returnType="AuthUser|null" params={[]}>
</ApiItem>
<ApiItem href="#authguardsession-validate" visibility="public" name="validate" returnType="bool" params={[{"type":"array","name":"credentials","default":"[]"}]}>
</ApiItem>
<ApiItem href="#authguardsession-viaremember" visibility="public" name="viaRemember" returnType="bool" params={[]}>
</ApiItem>
<ApiItem href="#authguardsession-attemptbasic" visibility="protected" name="attemptBasic" returnType="bool" params={[{"type":"string","name":"field","default":null},{"type":"array","name":"extraConditions","default":"[]"}]}>
</ApiItem>
<ApiItem href="#authguardsession-basiccredentials" visibility="protected" name="basicCredentials" returnType="array|null" params={[{"type":"string","name":"field","default":null}]}>
</ApiItem>
<ApiItem href="#authguardsession-createremembertoken" visibility="protected" name="createRememberToken" returnType="RememberToken" params={[{"type":"AuthUser","name":"user","default":null}]}>
</ApiItem>
<ApiItem href="#authguardsession-recaller" visibility="protected" name="recaller" returnType="UserRemember|null" params={[]}>
</ApiItem>
<ApiItem href="#authguardsession-rememberuser" visibility="protected" name="rememberUser" returnType="void" params={[{"type":"AuthUser","name":"user","default":null}]}>
</ApiItem>
<ApiItem href="#authguardsession-userfromrecaller" visibility="protected" name="userFromRecaller" returnType="AuthUser|null" params={[{"type":"UserRemember","name":"recaller","default":null}]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="clock" type="ClockInterface" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="cookies" type="CookiesInterface" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="request" type="RequestInterface" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="session" type="SessionManagerInterface" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="viaRemember" type="bool" default="false">
</ApiItem>

### Methods

<h4 id="authguardsession-__construct"><code>__construct()</code></h4>

```php
public function __construct(
Adapter $adapter,
RequestInterface $request,
CookiesInterface $cookies,
SessionManagerInterface $session,
SessionGuardConfig|null $config = null,
ClockInterface|null $clock = null
);
```

<h4 id="authguardsession-attempt"><code>attempt()</code></h4>

```php
public function attempt(
array $credentials = [],
bool $remember = false
): bool;
```

<h4 id="authguardsession-basic"><code>basic()</code></h4>

```php
public function basic(
string $field = "email",
array $extraConditions = []
): bool;
```

<h4 id="authguardsession-fromoptions"><code>fromOptions()</code></h4>

```php
public static function fromOptions(
Adapter $adapter,
mixed $container,
array $options
): static;
```

<h4 id="authguardsession-getname"><code>getName()</code></h4>

```php
public function getName(): string;
```

<h4 id="authguardsession-getremembername"><code>getRememberName()</code></h4>

```php
public function getRememberName(): string;
```

<h4 id="authguardsession-login"><code>login()</code></h4>

```php
public function login(
AuthUser $user,
bool $remember = false
): void;
```

<h4 id="authguardsession-loginbyid"><code>loginById()</code></h4>

```php
public function loginById(
mixed $id,
bool $remember = false
): AuthUser|false;
```

<h4 id="authguardsession-logout"><code>logout()</code></h4>

```php
public function logout(): void;
```

<h4 id="authguardsession-once"><code>once()</code></h4>

```php
public function once( array $credentials = [] ): bool;
```

<h4 id="authguardsession-oncebasic"><code>onceBasic()</code></h4>

```php
public function onceBasic(
string $field = "email",
array $extraConditions = []
): AuthUser|false;
```

<h4 id="authguardsession-user"><code>user()</code></h4>

```php
public function user(): AuthUser|null;
```

<h4 id="authguardsession-validate"><code>validate()</code></h4>

```php
public function validate( array $credentials = [] ): bool;
```

<h4 id="authguardsession-viaremember"><code>viaRemember()</code></h4>

```php
public function viaRemember(): bool;
```

<h4 id="authguardsession-attemptbasic"><code>attemptBasic()</code></h4>

```php
protected function attemptBasic(
string $field,
array $extraConditions = []
): bool;
```

<h4 id="authguardsession-basiccredentials"><code>basicCredentials()</code></h4>

```php
protected function basicCredentials( string $field ): array|null;
```

<h4 id="authguardsession-createremembertoken"><code>createRememberToken()</code></h4>

```php
protected function createRememberToken( AuthUser $user ): RememberToken;
```

<h4 id="authguardsession-recaller"><code>recaller()</code></h4>

```php
protected function recaller(): UserRemember|null;
```

<h4 id="authguardsession-rememberuser"><code>rememberUser()</code></h4>

```php
protected function rememberUser( AuthUser $user ): void;
```

<h4 id="authguardsession-userfromrecaller"><code>userFromRecaller()</code></h4>

```php
protected function userFromRecaller( UserRemember $recaller ): AuthUser|null;
```

## Auth\Guard\Token

Class

@extends AbstractGuard&lt;TokenGuardConfig>

- [`Phalcon\Auth\Guard\AbstractGuard`](#authguardabstractguard)
- **`Phalcon\Auth\Guard\Token`**

`Phalcon\Auth\Guard\Config\TokenGuardConfig` · `Phalcon\Auth\Internal\ContainerResolver` · `Phalcon\Auth\Internal\Options` · `Phalcon\Contracts\Auth\Adapter\Adapter` · `Phalcon\Contracts\Auth\AuthUser` · `Phalcon\Http\RequestInterface`

### Method Summary

<ApiItem href="#authguardtoken-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"Adapter","name":"adapter","default":null},{"type":"RequestInterface","name":"request","default":null},{"type":"TokenGuardConfig","name":"config","default":null}]}>
</ApiItem>
<ApiItem href="#authguardtoken-fromoptions" visibility="public" name="fromOptions" returnType="static" params={[{"type":"Adapter","name":"adapter","default":null},{"type":"mixed","name":"container","default":null},{"type":"array","name":"options","default":null}]}>
</ApiItem>
<ApiItem href="#authguardtoken-gettokenforrequest" visibility="public" name="getTokenForRequest" returnType="string|null" params={[]}>
Returns the bearer token for the request.
</ApiItem>
<ApiItem href="#authguardtoken-setrequest" visibility="public" name="setRequest" returnType="static" params={[{"type":"RequestInterface","name":"request","default":null}]}>
</ApiItem>
<ApiItem href="#authguardtoken-user" visibility="public" name="user" returnType="AuthUser|null" params={[]}>
</ApiItem>
<ApiItem href="#authguardtoken-validate" visibility="public" name="validate" returnType="bool" params={[{"type":"array","name":"credentials","default":"[]"}]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="request" type="RequestInterface" default="">
</ApiItem>

### Methods

<h4 id="authguardtoken-__construct"><code>__construct()</code></h4>

```php
public function __construct(
Adapter $adapter,
RequestInterface $request,
TokenGuardConfig $config
);
```

<h4 id="authguardtoken-fromoptions"><code>fromOptions()</code></h4>

```php
public static function fromOptions(
Adapter $adapter,
mixed $container,
array $options
): static;
```

<h4 id="authguardtoken-gettokenforrequest"><code>getTokenForRequest()</code></h4>

```php
public function getTokenForRequest(): string|null;
```

Returns the bearer token for the request.

Security: for backward compatibility the configured input key is also
read from the query string / request body, and is checked before the
Authorization header. A token placed in a URL leaks through access logs,
browser history and the Referer header (CWE-598) - always send it in the
"Authorization: Bearer &lt;token>" header and never as a query parameter.
A header-only opt-in is planned for a future major version.

<h4 id="authguardtoken-setrequest"><code>setRequest()</code></h4>

```php
public function setRequest( RequestInterface $request ): static;
```

<h4 id="authguardtoken-user"><code>user()</code></h4>

```php
public function user(): AuthUser|null;
```

<h4 id="authguardtoken-validate"><code>validate()</code></h4>

```php
public function validate( array $credentials = [] ): bool;
```

## Auth\Guard\UserRemember

Final

Value object representing the contents of a remember-me cookie.

- **`Phalcon\Auth\Guard\UserRemember`**

`InvalidArgumentException` · `Phalcon\Support\Helper\Json\Decode`

### Method Summary

<ApiItem href="#authguarduserremember-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"mixed","name":"payload","default":null}]}>
Accepts either the raw JSON cookie value (string) or the already
</ApiItem>
<ApiItem href="#authguarduserremember-getid" visibility="public" name="getId" returnType="int|string|null" params={[]}>
</ApiItem>
<ApiItem href="#authguarduserremember-gettoken" visibility="public" name="getToken" returnType="string" params={[]}>
</ApiItem>
<ApiItem href="#authguarduserremember-getuseragent" visibility="public" name="getUserAgent" returnType="string" params={[]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="id" type="int|string|null" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="token" type="string" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="userAgent" type="string" default="">
</ApiItem>

### Methods

<h4 id="authguarduserremember-__construct"><code>__construct()</code></h4>

```php
public function __construct( mixed $payload );
```

Accepts either the raw JSON cookie value (string) or the already
decoded associative array. Malformed input degrades to an empty
payload so callers can read getters without null-guarding.

<h4 id="authguarduserremember-getid"><code>getId()</code></h4>

```php
public function getId(): int|string|null;
```

<h4 id="authguarduserremember-gettoken"><code>getToken()</code></h4>

```php
public function getToken(): string;
```

<h4 id="authguarduserremember-getuseragent"><code>getUserAgent()</code></h4>

```php
public function getUserAgent(): string;
```

## Auth\Internal\ContainerResolver

Final

Internal single source of truth for resolving services from either the
new Phalcon\Container\Container or the legacy Phalcon\Di\Di. Not part of
the public API.

Intent is Container-first; the legacy Di is supported "with provisions":
definitions must be pre-registered (no autowiring), the one exception
being the fresh path, which lets Di build an unregistered but existing
class via its class builder.

All legacy-Di failures are normalized to Phalcon\Container\Exceptions so
callers and userland catch a single exception family.

- **`Phalcon\Auth\Internal\ContainerResolver`**

`Closure` · `Phalcon\Container\Exceptions\Exception` · `Phalcon\Contracts\Container\Service\Collection` · `Phalcon\Di\DiInterface` · `Phalcon\Di\Exception` · `Phalcon\Di\Service` · `TypeError`

### Method Summary

<ApiItem href="#authinternalcontainerresolver-ensurecontainer" visibility="public" name="ensureContainer" returnType="void" params={[{"type":"mixed","name":"container","default":null}]}>
Validates that the value is a supported container.
</ApiItem>
<ApiItem href="#authinternalcontainerresolver-requireservice" visibility="public" name="requireService" returnType="object" params={[{"type":"mixed","name":"container","default":null},{"type":"array","name":"candidates","default":null},{"type":"string","name":"context","default":null}]}>
Resolves the first candidate service name that the container can
</ApiItem>
<ApiItem href="#authinternalcontainerresolver-resolvecandidate" visibility="public" name="resolveCandidate" returnType="object" params={[{"type":"mixed","name":"container","default":null},{"type":"array","name":"options","default":null},{"type":"string","name":"key","default":null},{"type":"string","name":"fqn","default":null},{"type":"string","name":"shortName","default":null},{"type":"string","name":"context","default":null}]}>
Convenience composition of serviceCandidates() + requireService():
</ApiItem>
<ApiItem href="#authinternalcontainerresolver-resolvefresh" visibility="public" name="resolveFresh" returnType="object" params={[{"type":"mixed","name":"container","default":null},{"type":"string","name":"name","default":null}]}>
Resolves a fresh instance: new() on the Container (bypasses the
</ApiItem>
<ApiItem href="#authinternalcontainerresolver-servicecandidates" visibility="public" name="serviceCandidates" returnType="array" params={[{"type":"array","name":"options","default":null},{"type":"string","name":"key","default":null},{"type":"string","name":"fqn","default":null},{"type":"string","name":"shortName","default":null}]}>
Builds the ordered candidate list for a framework service:
</ApiItem>

### Methods

<h4 id="authinternalcontainerresolver-ensurecontainer"><code>ensureContainer()</code></h4>

```php
public static function ensureContainer( mixed $container ): void;
```

Validates that the value is a supported container.

<h4 id="authinternalcontainerresolver-requireservice"><code>requireService()</code></h4>

```php
public static function requireService(
mixed $container,
array $candidates,
string $context
): object;
```

Resolves the first candidate service name that the container can
provide, as a shared instance. Used for framework services (request,
cookies, session) whose container key may vary between application
setups.

<h4 id="authinternalcontainerresolver-resolvecandidate"><code>resolveCandidate()</code></h4>

```php
public static function resolveCandidate(
mixed $container,
array $options,
string $key,
string $fqn,
string $shortName,
string $context
): object;
```

Convenience composition of serviceCandidates() + requireService():
resolves the first bound candidate for a framework service whose
container key may vary, using the options override or the
[interface FQN, conventional short name] fallback.

<h4 id="authinternalcontainerresolver-resolvefresh"><code>resolveFresh()</code></h4>

```php
public static function resolveFresh(
mixed $container,
string $name
): object;
```

Resolves a fresh instance: new() on the Container (bypasses the
instance cache); on the legacy Di, get() for unregistered or
non-shared services, and a rebuild from the definition for shared
services (Di::get() would return the cached instance). On Di, an
unregistered but existing class is still built via the class builder.

<h4 id="authinternalcontainerresolver-servicecandidates"><code>serviceCandidates()</code></h4>

```php
public static function serviceCandidates(
array $options,
string $key,
string $fqn,
string $shortName
): array;
```

Builds the ordered candidate list for a framework service:
an explicit override from options['services'][key] if present,
otherwise the interface FQN followed by the conventional short name.

## Auth\Internal\Options

Final

Internal option-parsing helpers shared by adapter / guard fromOptions()
implementations. Not part of the public API.

- **`Phalcon\Auth\Internal\Options`**

`Phalcon\Auth\Exception` · `Phalcon\Auth\Exceptions\OptionRequiresArray` · `Phalcon\Auth\Exceptions\OptionRequiresString`

### Method Summary

<ApiItem href="#authinternaloptions-arrayoption" visibility="public" name="arrayOption" returnType="array" params={[{"type":"array","name":"options","default":null},{"type":"string","name":"key","default":null},{"type":"array","name":"defaultValue","default":null}]}>
</ApiItem>
<ApiItem href="#authinternaloptions-requirearray" visibility="public" name="requireArray" returnType="array" params={[{"type":"array","name":"options","default":null},{"type":"string","name":"key","default":null},{"type":"string","name":"context","default":null}]}>
</ApiItem>
<ApiItem href="#authinternaloptions-requirestring" visibility="public" name="requireString" returnType="string" params={[{"type":"array","name":"options","default":null},{"type":"string","name":"key","default":null},{"type":"string","name":"context","default":null}]}>
</ApiItem>
<ApiItem href="#authinternaloptions-stringornull" visibility="public" name="stringOrNull" returnType="string|null" params={[{"type":"array","name":"options","default":null},{"type":"string","name":"key","default":null}]}>
</ApiItem>

### Methods

<h4 id="authinternaloptions-arrayoption"><code>arrayOption()</code></h4>

```php
public static function arrayOption(
array $options,
string $key,
array $defaultValue
): array;
```

<h4 id="authinternaloptions-requirearray"><code>requireArray()</code></h4>

```php
public static function requireArray(
array $options,
string $key,
string $context
): array;
```

<h4 id="authinternaloptions-requirestring"><code>requireString()</code></h4>

```php
public static function requireString(
array $options,
string $key,
string $context
): string;
```

<h4 id="authinternaloptions-stringornull"><code>stringOrNull()</code></h4>

```php
public static function stringOrNull(
array $options,
string $key
): string|null;
```

## Auth\Manager

Class

Composes guards (authentication) and access gates (authorization)
behind a single facade. Guard-specific behavior is reached through
Manager::guard(); callers narrow with instanceof against the
relevant capability interface (GuardStateful, BasicAuth, etc.).

- **`Phalcon\Auth\Manager`** - implements [`Phalcon\Contracts\Auth\Manager`](/5.20/api/phalcon_contracts/#contractsauthmanager)

`Phalcon\Auth\Access\AccessLocator` · `Phalcon\Auth\Exceptions\AccessNotRegistered` · `Phalcon\Auth\Exceptions\ActiveAccessRequired` · `Phalcon\Auth\Exceptions\DefaultGuardNotRegistered` · `Phalcon\Auth\Exceptions\DoesNotImplement` · `Phalcon\Auth\Exceptions\GuardNotDefined` · `Phalcon\Contracts\Auth\Access\Access` · `Phalcon\Contracts\Auth\Adapter\Adapter` · `Phalcon\Contracts\Auth\AuthUser` · `Phalcon\Contracts\Auth\Guard\Guard` · `Phalcon\Contracts\Auth\Guard\GuardStateful` · `Phalcon\Contracts\Auth\Manager`

### Method Summary

<ApiItem href="#authmanager-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"AccessLocator","name":"accessFactory","default":null}]}>
</ApiItem>
<ApiItem href="#authmanager-access" visibility="public" name="access" returnType="self" params={[{"type":"string","name":"accessName","default":null}]}>
</ApiItem>
<ApiItem href="#authmanager-addaccesslist" visibility="public" name="addAccessList" returnType="self" params={[{"type":"array","name":"accessList","default":null}]}>
</ApiItem>
<ApiItem href="#authmanager-addguard" visibility="public" name="addGuard" returnType="self" params={[{"type":"string","name":"nameGuard","default":null},{"type":"Guard","name":"guard","default":null},{"type":"bool","name":"isDefault","default":"false"}]}>
</ApiItem>
<ApiItem href="#authmanager-attempt" visibility="public" name="attempt" returnType="bool" params={[{"type":"array","name":"credentials","default":"[]"},{"type":"bool","name":"remember","default":"false"}]}>
</ApiItem>
<ApiItem href="#authmanager-check" visibility="public" name="check" returnType="bool" params={[]}>
</ApiItem>
<ApiItem href="#authmanager-except" visibility="public" name="except" returnType="self" params={[{"type":"string","name":"actions","default":null}]}>
</ApiItem>
<ApiItem href="#authmanager-getaccess" visibility="public" name="getAccess" returnType="Access|null" params={[]}>
</ApiItem>
<ApiItem href="#authmanager-getaccesslist" visibility="public" name="getAccessList" returnType="array" params={[]}>
</ApiItem>
<ApiItem href="#authmanager-getdefaultguard" visibility="public" name="getDefaultGuard" returnType="Guard|null" params={[]}>
</ApiItem>
<ApiItem href="#authmanager-getguards" visibility="public" name="getGuards" returnType="array" params={[]}>
</ApiItem>
<ApiItem href="#authmanager-guard" visibility="public" name="guard" returnType="Guard" params={[{"type":"string|null","name":"name","default":"null"}]}>
</ApiItem>
<ApiItem href="#authmanager-id" visibility="public" name="id" returnType="int|string|null" params={[]}>
</ApiItem>
<ApiItem href="#authmanager-logout" visibility="public" name="logout" returnType="void" params={[]}>
</ApiItem>
<ApiItem href="#authmanager-only" visibility="public" name="only" returnType="self" params={[{"type":"string","name":"actions","default":null}]}>
</ApiItem>
<ApiItem href="#authmanager-setaccess" visibility="public" name="setAccess" returnType="self" params={[{"type":"Access","name":"access","default":null}]}>
</ApiItem>
<ApiItem href="#authmanager-setdefaultguard" visibility="public" name="setDefaultGuard" returnType="self" params={[{"type":"Guard","name":"guard","default":null}]}>
</ApiItem>
<ApiItem href="#authmanager-user" visibility="public" name="user" returnType="AuthUser|null" params={[]}>
</ApiItem>
<ApiItem href="#authmanager-validate" visibility="public" name="validate" returnType="bool" params={[{"type":"array","name":"credentials","default":"[]"}]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="accessFactory" type="AccessLocator" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="activeAccess" type="Access|null" default="null">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="defaultGuard" type="Guard|null" default="null">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="guards" type="array&lt;string, Guard&gt;" default="[]">
</ApiItem>

### Methods

<h4 id="authmanager-__construct"><code>__construct()</code></h4>

```php
public function __construct( AccessLocator $accessFactory );
```

<h4 id="authmanager-access"><code>access()</code></h4>

```php
public function access( string $accessName ): self;
```

<h4 id="authmanager-addaccesslist"><code>addAccessList()</code></h4>

```php
public function addAccessList( array $accessList ): self;
```

<h4 id="authmanager-addguard"><code>addGuard()</code></h4>

```php
public function addGuard(
string $nameGuard,
Guard $guard,
bool $isDefault = false
): self;
```

<h4 id="authmanager-attempt"><code>attempt()</code></h4>

```php
public function attempt(
array $credentials = [],
bool $remember = false
): bool;
```

<h4 id="authmanager-check"><code>check()</code></h4>

```php
public function check(): bool;
```

<h4 id="authmanager-except"><code>except()</code></h4>

```php
public function except( string $actions ): self;
```

<h4 id="authmanager-getaccess"><code>getAccess()</code></h4>

```php
public function getAccess(): Access|null;
```

<h4 id="authmanager-getaccesslist"><code>getAccessList()</code></h4>

```php
public function getAccessList(): array;
```

<h4 id="authmanager-getdefaultguard"><code>getDefaultGuard()</code></h4>

```php
public function getDefaultGuard(): Guard|null;
```

<h4 id="authmanager-getguards"><code>getGuards()</code></h4>

```php
public function getGuards(): array;
```

<h4 id="authmanager-guard"><code>guard()</code></h4>

```php
public function guard( string|null $name = null ): Guard;
```

<h4 id="authmanager-id"><code>id()</code></h4>

```php
public function id(): int|string|null;
```

<h4 id="authmanager-logout"><code>logout()</code></h4>

```php
public function logout(): void;
```

<h4 id="authmanager-only"><code>only()</code></h4>

```php
public function only( string $actions ): self;
```

<h4 id="authmanager-setaccess"><code>setAccess()</code></h4>

```php
public function setAccess( Access $access ): self;
```

<h4 id="authmanager-setdefaultguard"><code>setDefaultGuard()</code></h4>

```php
public function setDefaultGuard( Guard $guard ): self;
```

<h4 id="authmanager-user"><code>user()</code></h4>

```php
public function user(): AuthUser|null;
```

<h4 id="authmanager-validate"><code>validate()</code></h4>

```php
public function validate( array $credentials = [] ): bool;
```

## Auth\ManagerFactory

Class

Single entry-point factory that builds a fully wired Phalcon\Auth\Manager
from a config tree. Framework-shared services (RequestInterface,
CookiesInterface, SessionManagerInterface) are resolved from the injected
container so the manager wires against the real application singletons,
not separately constructed copies.

 [
     'guards' => [
         'web' => [
             'type'    => 'session',
             'default' => true,
             'adapter' => [
                 'name'    => 'model',
                 'options' => [
                     'model' => User::class
                 ],
             ],
             'options' => [],
         ],
         'api' => [
             'type'    => 'token',
             'adapter' => [
                 'name'    => 'model',
                 'options' => [
                     'model' => User::class
                 ]
             ],
             'options' => [
                 'inputKey'   => 'api_token',
                 'storageKey' => 'api_token'
             ],
         ],
     ],
     'access' => [
         'auth'  => \Phalcon\Auth\Access\Auth::class,
         'guest' => \Phalcon\Auth\Access\Guest::class,
     ],
 ]

- **`Phalcon\Auth\ManagerFactory`**

`Phalcon\Auth\Access\AccessLocator` · `Phalcon\Auth\Adapter\AdapterLocator` · `Phalcon\Auth\Exceptions\UnknownAdapter` · `Phalcon\Auth\Exceptions\UnknownGuard` · `Phalcon\Auth\Guard\GuardLocator` · `Phalcon\Auth\Internal\Options` · `Phalcon\Config\ConfigInterface` · `Phalcon\Contracts\Auth\Access\Access` · `Phalcon\Contracts\Auth\Adapter\Adapter` · `Phalcon\Contracts\Auth\Guard\Guard` · `Phalcon\Contracts\Container\Service\Collection` · `Phalcon\Di\DiInterface` · `Phalcon\Encryption\Security` · `Phalcon\Traits\Factory\ConfigTrait`

### Method Summary

<ApiItem href="#authmanagerfactory-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"Security","name":"hasher","default":null},{"type":"mixed","name":"container","default":null},{"type":"AdapterLocator|null","name":"adapterLocator","default":"null"},{"type":"GuardLocator|null","name":"guardLocator","default":"null"},{"type":"AccessLocator|null","name":"accessLocator","default":"null"}]}>
</ApiItem>
<ApiItem href="#authmanagerfactory-load" visibility="public" name="load" returnType="Manager" params={[{"type":"mixed","name":"config","default":null}]}>
</ApiItem>
<ApiItem href="#authmanagerfactory-buildadapter" visibility="protected" name="buildAdapter" returnType="Adapter" params={[{"type":"AdapterLocator","name":"locator","default":null},{"type":"array","name":"cfg","default":null}]}>
</ApiItem>
<ApiItem href="#authmanagerfactory-buildguard" visibility="protected" name="buildGuard" returnType="Guard" params={[{"type":"GuardLocator","name":"locator","default":null},{"type":"string","name":"type","default":null},{"type":"Adapter","name":"adapter","default":null},{"type":"array","name":"options","default":null}]}>
</ApiItem>
<ApiItem href="#authmanagerfactory-getexceptionclass" visibility="protected" name="getExceptionClass" returnType="string" params={[]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="accessLocator" type="AccessLocator" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="adapterLocator" type="AdapterLocator" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="container" type="mixed" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="guardLocator" type="GuardLocator" default="">
</ApiItem>
<ApiItem kind="property" visibility="protected" name="hasher" type="Security" default="">
</ApiItem>

### Methods

<h4 id="authmanagerfactory-__construct"><code>__construct()</code></h4>

```php
public function __construct(
Security $hasher,
mixed $container,
AdapterLocator|null $adapterLocator = null,
GuardLocator|null $guardLocator = null,
AccessLocator|null $accessLocator = null
);
```

<h4 id="authmanagerfactory-load"><code>load()</code></h4>

```php
public function load( mixed $config ): Manager;
```

<h4 id="authmanagerfactory-buildadapter"><code>buildAdapter()</code></h4>

```php
protected function buildAdapter(
AdapterLocator $locator,
array $cfg
): Adapter;
```

<h4 id="authmanagerfactory-buildguard"><code>buildGuard()</code></h4>

```php
protected function buildGuard(
GuardLocator $locator,
string $type,
Adapter $adapter,
array $options
): Guard;
```

<h4 id="authmanagerfactory-getexceptionclass"><code>getExceptionClass()</code></h4>

```php
protected function getExceptionClass(): string;
```

## Auth\Micro\AuthMicroListener

Class

Listener that enforces the active Phalcon\Auth access gate on each Micro
route execution. Attach to the events manager:

  $eventsManager->attach('micro', new AuthMicroListener($manager));
  $app->setEventsManager($eventsManager);

The action name is the matched route's name, falling back to the route
pattern when the route is unnamed. The ACL component is the configured
component name (default 'Micro'). redirectTo() is ignored - Micro has no
forward mechanism.

No-op when no active access has been set on the manager.

- [`Phalcon\Auth\AbstractAuthDispatcherListener`](#authabstractauthdispatcherlistener)
- **`Phalcon\Auth\Micro\AuthMicroListener`**

`Phalcon\Auth\AbstractAuthDispatcherListener` · `Phalcon\Auth\Exception` · `Phalcon\Contracts\Auth\Manager` · `Phalcon\Events\Event` · `Phalcon\Mvc\Micro` · `Phalcon\Mvc\RouterInterface` · `Phalcon\Mvc\Router\RouteInterface`

### Method Summary

<ApiItem href="#authmicroauthmicrolistener-__construct" visibility="public" name="__construct" returnType="" params={[{"type":"Manager","name":"manager","default":null},{"type":"string","name":"componentName","default":"\"Micro\""}]}>
</ApiItem>
<ApiItem href="#authmicroauthmicrolistener-beforeexecuteroute" visibility="public" name="beforeExecuteRoute" returnType="bool" params={[{"type":"Event","name":"event","default":null},{"type":"Micro","name":"application","default":null}]}>
</ApiItem>
<ApiItem href="#authmicroauthmicrolistener-getactiontype" visibility="protected" name="getActionType" returnType="string" params={[]}>
</ApiItem>

### Properties

<ApiItem kind="property" visibility="protected" name="componentName" type="string" default="">
</ApiItem>

### Methods

<h4 id="authmicroauthmicrolistener-__construct"><code>__construct()</code></h4>

```php
public function __construct(
Manager $manager,
string $componentName = "Micro"
);
```

<h4 id="authmicroauthmicrolistener-beforeexecuteroute"><code>beforeExecuteRoute()</code></h4>

```php
public function beforeExecuteRoute(
Event $event,
Micro $application
): bool;
```

<h4 id="authmicroauthmicrolistener-getactiontype"><code>getActionType()</code></h4>

```php
protected function getActionType(): string;
```

## Auth\Mvc\AuthDispatcherListener

Class

Listener that enforces the active Phalcon\Auth access gate on each MVC
dispatch. Attach to the events manager:

  $eventsManager->attach('dispatch', new AuthDispatcherListener($manager));

No-op when no active access has been set on the manager.

- [`Phalcon\Auth\AbstractAuthDispatcherListener`](#authabstractauthdispatcherlistener)
- **`Phalcon\Auth\Mvc\AuthDispatcherListener`**

`Phalcon\Auth\AbstractAuthDispatcherListener` · `Phalcon\Auth\Exception` · `Phalcon\Events\Event` · `Phalcon\Mvc\Dispatcher`

### Method Summary

<ApiItem href="#authmvcauthdispatcherlistener-beforeexecuteroute" visibility="public" name="beforeExecuteRoute" returnType="bool" params={[{"type":"Event","name":"event","default":null},{"type":"Dispatcher","name":"dispatcher","default":null}]}>
</ApiItem>
<ApiItem href="#authmvcauthdispatcherlistener-getactiontype" visibility="protected" name="getActionType" returnType="string" params={[]}>
</ApiItem>

### Methods

<h4 id="authmvcauthdispatcherlistener-beforeexecuteroute"><code>beforeExecuteRoute()</code></h4>

```php
public function beforeExecuteRoute(
Event $event,
Dispatcher $dispatcher
): bool;
```

<h4 id="authmvcauthdispatcherlistener-getactiontype"><code>getActionType()</code></h4>

```php
protected function getActionType(): string;
```

Source: https://docs.phalcon.io/5.20/api/phalcon_auth/index.mdx
