<?php namespace app\models; class User extends \yii\base\Object implements \yii\web\IdentityInterface { public $id; public $username; public $password; public $authKey; public $accessToken; private static $users = [ '100' => [ 'id' => '100', 'username' => 'admin', 'password' => 'admin', 'authKey' => 'test100key', 'accessToken' => '100-token', ], ]; /** * @inheritdoc */ public static function findIdentity($id) { return isset(self::$users[$id]) ? new static(self::$users[$id]) : null; } /** * @inheritdoc */ public static function findIdentityByAccessToken($token, $type = null) { foreach (self::$users as $user) { if ($user['accessToken'] === $token) { return new static($user); } } return null; } /** * Finds user by username * * @param string $username * @return static|null */ public static function findByUsername($username) { foreach (self::$users as $user) { if (strcasecmp($user['username'], $username) === 0) { return new static($user); } } return null; } /** * @inheritdoc */ public function getId() { return $this->id; } /** * @inheritdoc */ public function getAuthKey() { return $this->authKey; } /** * @inheritdoc */ public function validateAuthKey($authKey) { return $this->authKey === $authKey; } /** * Validates password * * @param string $password password to validate * @return boolean if password provided is valid for current user */ public function validatePassword($password) { return $this->password === $password; } }
改为如下代码即可
<?php namespace app\models; use Yii; class User extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface { public $id; public $username; public $password; public $authKey; public $accessToken; static private $AUTH_KEY = "authkey_test"; //remember me need this static private $ACCESS_TOKEN = "accesstoken_test"; // remember me need this public static function tableName() { return 'tb_admin'; } /** * @return \yii\db\Connection the database connection used by this AR class. */ public static function getDb() { return Yii::$app->get('db_admin'); } /** * Finds user by username * * @param string $username * @return static|null */ public static function findByUsername($username) { $user = User::find()->where(['username'=>$username])->asArray()->one(); if(isset($user)){ $user['authKey'] = self::$AUTH_KEY; $user['accessToken'] = self::$ACCESS_TOKEN; } return isset($user) ? new static($user) : null; } /** * Validates password * * @param string $password password to validate * @return boolean if password provided is valid for current user */ public function validatePassword($password) { return $this->password === $password; } /** * @inheritdoc */ public function getId() { return $this->id; } /** * @inheritdoc */ public function getAuthKey() { return $this->authKey; } /** * @inheritdoc */ public static function findIdentity($id) { $user = User::find()->where(['id'=>$id])->asArray()->one(); if(isset($user)){ $user['authKey'] = self::$AUTH_KEY; $user['accessToken'] = self::$ACCESS_TOKEN; } return isset($user) ? new static($user) : null; } /** * @inheritdoc */ public static function findIdentityByAccessToken($token, $type = null) { return null; } /** * @inheritdoc */ public function validateAuthKey($authKey) { return $this->authKey === $authKey; } }
相关推荐
YII 2数据库迁移(Migrations) 使用教程,使用migrate功能迁移数据库
编撰中 数据访问对象(DAO) - 数据库连接、基本查询、事务和模式操作 编撰中 查询生成器(Query Builder) - 使用简单抽象层查询数据库 编撰中 活动记录(Active Record) - 活动记录对象关系映射(ORM),检索和...
yii2-schemadump 从现有数据库生成模式。演示版要求PHP 7.3或更高版本Yii 2.x安装composer require --dev jamband/yii2-schemadump用法在config / console.php中添加以下内容: return [ . . . 'components' => [ . ...
php YII框架数据库备份模块
yii2命令行中使用migration备份和还原数据库
使用yii2框架完成的简单注册登录功能,数据库在data目录下。
yii2-user, 灵活的Yii2用户注册和认证模块 Yii2-user 大多数网络应用程序都提供了一种用户登录。登录或者重新设置自己忘记密码。 你可以使用Yii2-user灵活的用户管理模块来处理常见任务,比如注册。认证和密码检索,...
Yii 2 基础应用模板Yii 2 Basic Application Template 是一个骨架 Yii 2 应用程序,最适合快速创建小项目。 该模板包含基本功能,包括用户登录/注销和联系页面。 它包括所有常用配置,使您可以专注于向应用程序添加...
Yii2参考手册,Yii2中文手册完整版
yii2 swoole:让yii2运行在swoole上 , 运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上
Yii2 RBAC 集成了用户管理模块和自写的权限管理模块,前端页面采用H+框架。-Yii2-Rbac
yii对象操作、直接数据库操作、事物等操作。几乎所有的操作都收录了
yii ajax demo yii ajax demo
yii 学习笔记,其中包括数据缓存、缓存组件、缓存过期、缓存依赖的理解及yii2数据缓存的测试代码
Yii2备份和还原数据库 数据库备份和还原功能 安装 安装此扩展的首选方法是通过 。 无论运行 php composer.phar require --prefer-dist spanjeta/yii2-backup "*" 或添加 "spanjeta/yii2-backup": "*" 到composer....
该资源包含yii2中文开发手册和yii2英文开发手册
Amp-yii2-queue.zip,YII 2.0非阻塞队列扩展。,amp是php的一个非阻塞并发框架。它提供事件循环、承诺和流,作为异步编程的基础。
yii2 创建表单 笔记
Yii2中文手册CHM版
完整的yii2框架中文手册: 1. 易于安装 2. 利用现代技术 3. 高度可扩展性 4. 鼓励测试 5. 简化的安全方案 6. 缩短开发时间 7. 很容易通过调整获得更好的性能 Yii可以帮助你快速的创建现代的web应用程序,并确保它们...