/var/www/vhosts/ihelp.ro/httpdocs/vendor/cakephp/authentication/docs/en
NameSizeModeActions
authentication-component.rst39750644editdlrm
authenticators.rst206610644editdlrm
conf.py2610644editdlrm
contents.rst3290644editdlrm
identifiers.rst65500644editdlrm
identity-object.rst33580644editdlrm
impersonation.rst22160644editdlrm
index.rst88770644editdlrm
middleware.rst26330644editdlrm
migration-from-the-authcomponent.rst113610644editdlrm
password-hashers.rst27040644editdlrm
testing.rst17990644editdlrm
url-checkers.rst10400644editdlrm
view-helper.rst7310644editdlrm
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/cakephp/authentication/docs/en/identity-object.rst (3358B)
Identity Objects ################ Identity objects are returned by the authentication service and made available in the request. Identities provides a method ``getIdentifier()`` that can be called to get the primary id value of the current log in identity. The reason this object exists is to provide an interface that makes it implementations/sources:: // Service $authenticationService ->getIdentity() ->getIdentifier() // Component $this->Authentication ->getIdentity() ->getIdentifier(); // Request $this->request ->getAttribute('identity') ->getIdentifier(); The identity object provides ArrayAccess but as well a ``get()`` method to access data. It is strongly recommended to use the ``get()`` method over array access because the get method is aware of the field mapping:: $identity->get('email'); $identity->get('username'); The ``get()`` method can also be type-hinted via IDE meta file, e.g. through `IdeHelper `__. If you want, you can use property access, however:: $identity->email; $identity->username; The default Identity object class can be configured to map fields. This is pretty useful if the identifier of the identity is a non-conventional ``id`` field or if you want to map other fields to more generic and common names:: $identity = new Identity($data, [ 'fieldMap' => [ 'id' => 'uid', 'username' => 'first_name' ] ]); Creating your own Identity Object --------------------------------- By default the Authentication plugin will wrap your returned user data in an ``IdentityDecorator`` that proxies methods and property access. If you want to create your own identity object, your object must implement the ``IdentityInterface``. Implementing the IdentityInterface on your User class ----------------------------------------------------- If you’d like to continue using your existing User class with this plugin you can implement the ``Authentication\IdentityInterface``:: namespace App\Model\Entity; use Authentication\IdentityInterface; use Cake\ORM\Entity; class User extends Entity implements IdentityInterface { /** * Authentication\IdentityInterface method */ public function getIdentifier() { return $this->id; } /** * Authentication\IdentityInterface method */ public function getOriginalData() { return $this; } // Other methods } Using a Custom Identity Decorator --------------------------------- If your identifiers cannot have their resulting objects modified to implement the ``IdentityInterface`` you can implement a custom decorator that implements the required interface:: // You can use a callable... $identityResolver = function ($data) { return new MyCustomIdentity($data); }; //...or a class name to set the identity wrapper. $identityResolver = MyCustomIdentity::class; // Then pass it to the service configuration $service = new AuthenticationService([ 'identityClass' => $identityResolver, 'identifiers' => [ 'Authentication.Password' ], 'authenticators' => [ 'Authentication.Form' ] ]);