<?php /** * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/license/ */ namespace yii\web; /** * IdentityInterface is the interface that should be implemented by a class providing identity information. * * This interface can typically be implemented by a user model class. For example, the following * code shows how to implement this interface by a User ActiveRecord class: * * ~~~ * class User extends ActiveRecord implements IdentityInterface * { * public static function findIdentity($id) * { * return static::findOne($id); * } * * public static function findIdentityByAccessToken($token) * { * return static::findOne(['access_token' => $token]); * } * * public function getId() * { * return $this->id; * } * * public function getAuthKey() * { * return $this->authKey; * } * * public function validateAuthKey($authKey) * { * return $this->authKey === $authKey; * } * } * ~~~ * * @author Qiang Xue <qiang.xue@gmail.com> * @since 2.0 */ interface IdentityInterface { /** * Finds an identity by the given ID. * @param string|integer $id the ID to be looked for * @return IdentityInterface the identity object that matches the given ID. * Null should be returned if such an identity cannot be found * or the identity is not in an active state (disabled, deleted, etc.) */ public static function findIdentity($id); /** * Finds an identity by the given secrete token. * @param string $token the secrete token * @return IdentityInterface the identity object that matches the given token. * Null should be returned if such an identity cannot be found * or the identity is not in an active state (disabled, deleted, etc.) */ public static function findIdentityByAccessToken($token); /** * Returns an ID that can uniquely identify a user identity. * @return string|integer an ID that uniquely identifies a user identity. */ public function getId(); /** * Returns a key that can be used to check the validity of a given identity ID. * * The key should be unique for each individual user, and should be persistent * so that it can be used to check the validity of the user identity. * * The space of such keys should be big enough to defeat potential identity attacks. * * This is required if [[User::enableAutoLogin]] is enabled. * @return string a key that is used to check the validity of a given identity ID. * @see validateAuthKey() */ public function getAuthKey(); /** * Validates the given auth key. * * This is required if [[User::enableAutoLogin]] is enabled. * @param string $authKey the given auth key * @return boolean whether the given auth key is valid. * @see getAuthKey() */ public function validateAuthKey($authKey); }