Yii2 登录Model
<?php namespace app\models; use Yii; class User extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface
{
public $auth_key='sun'; public $access_token='sun';
/**
* @inheritdoc
*/
public static function tableName()
{
return '{{%user}}';
} /**
* @inheritdoc
*/
public function rules()
{
return [
[['id', 'username', 'password', 'email', 'create_by', 'create_at'], 'required'],
[['username'], 'unique']
];
} /**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => '唯一序号',
'username' => '账号',
'password' => '密码',
'email' => '邮箱地址',
'create_by' => '创建人',
'create_at' => '创建日期',
];
}
/**
* 根据参数ID获取用户数据
* @param type $id
* @return type
*/
public static function findIdentity($id)
{
return static::findOne($id);
} /**
* 获取令牌
* @param type $token
* @param type $type
* @return \static
*/
public static function findIdentityByAccessToken($token, $type = null)
{
//return static::findOne(['access_token' => $token]);
return new static($this->access_token);
} /**
* 根据参数获取用户帐号信息
* @param string $username
* @return static|null
*/
public static function findByUsername($username)
{
$user = self::find()->where(['username' => $username])->asArray()->one(); if($user)
{
return new static($user);
}
return null;
} /**
* 获取当前用户ID
* @return type
*/
public function getId()
{
return $this->id;
} /**
* 获取授权密钥
* @return type
*/
public function getAuthKey()
{
return $this->auth_key;
} /**
* 授权密钥验证
* @param type $authKey
* @return type
*/
public function validateAuthKey($authKey)
{
return $this->auth_key === $authKey;
} /**
* 密码验证
*
* @param string $password password to validate
* @return boolean if password provided is valid for current user
*/
public function validatePassword($password)
{
//return $this->password === $password;
//生成密码时用 Yii::$app->getSecurity()->generatePasswordHash(明文密码)
return Yii::$app->getSecurity()->validatePassword($password, $this->password);
}
}
Yii2 登录Model的更多相关文章
- YII报错笔记:<pre>PHP Notice 'yii\base\ErrorException' with message 'Uninitialized string offset: 0' in /my/test/project/iot/vendor/yiisoft/yii2/base/Model.php:778
YII常见报错笔记 报错返回的代码如下: <pre>PHP Notice 'yii\base\ErrorException' with message 'Uninitialized str ...
- yii2 登录、退出、自动登录
自动登录的原理很简单.主要就是利用cookie来实现的在第一次登录的时候,如果登录成功并且选中了下次自动登录,那么就会把用户的认证信息保存到cookie中,cookie的有效期为1年或者几个月. 在下 ...
- Yii2 登录报错
当用数据库登录系统报如下错误时 PHP Recoverable Error – yii\base\ErrorException Argument 1 passed to yii\web\User::l ...
- yii2 登录用户和未登录用户使用不同的 layout
可以在配置文件中增加一个 “beforeRequest” 事件: 'on beforeRequest' => function () { Yii::$app->layout = Yii:: ...
- yii2 登录验证
- Yii2 用户登录
在Yii2的basic版本中默认是从一个数组验证用户名和密码,如何改为从数据表中查询验证呢?且数据库的密码要为哈希加密密码验证? 下面我们就一步一步解析Yii2的登录过程. 一. 创建user表模型 ...
- Yii2 Model的一些常用rules规则,使用Validator验证
1. Yii2里 model在使用load方法加载浏览器的值的时候,会进行rules验证.这时候可以使用场景,让model对不同场景使用不同验证方式 2. 可以用attributeLabels()来指 ...
- MVC中实现只有当用户登录成功的时候才等浏览内容,否则跳转到登录页面
第一步,在登录的时候记录Session //提供Session接口方便后面判断用户登录 Session["UserInfo"] = uinfo; //uInfo是用户登录Mode ...
- yii2搭建完美后台并实现rbac权限控制实例教程
1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 或者参考yii2实战教程之详细安装步骤 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/con ...
随机推荐
- CSDN怎么一键转载别人的博客
在参考"如何快速转载CSDN中的博客"后,由于自己不懂html以及markdown相关知识,所以花了一些时间来弄明白怎么转载博客,以下为转载CSDN博客步骤和一些知识小笔记. 参考 ...
- Android 异常 UncaughtException detected: java.lang.RuntimeException: Parcelable encountered IOExcepti
异常信息: UncaughtException detected: java.lang.RuntimeException: Parcelable encountered IOException wri ...
- 一个简单的JS倒计时
看到很多商城都是抢购倒计时的功能,今天闲来无事做了个倒计时.全当学习JS. 主要思路:主要用到Date对象,声明一个变量获取当前时间,在声明一个变量获取结束时间,结束时间-当前时间=剩余时间(倒计时) ...
- 前端响应式のmedia文件分离
响应式cssのmedia文件分离 media简介 1.媒体查询,添加自CSS3 2.一个媒体查询由一个可选的媒体类型和零个或多个使用媒体功能的限制了样式表范围的表达式组成,允许内容的呈现针对一个特定范 ...
- response对象和request对象详解
request方法列举:request.getAuthType() // 获取保护servlet的认证方案名(BASIC或SSL),未受保护的servlet返回的就是nullrequest.getCh ...
- 四、利用SQL Server 2008 R2创建自动备份计划
(转) 本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQ ...
- linux初学者-数据库管理MariaDB篇
linux初学者-数据库管理MariaDB篇 MariaDB是一种数据库管理系统,是MySQL的一个分支,但是比MySQL更加优秀,可以说是MySQL的替代品.MariaDB使用的是SQL语句.下文将 ...
- js - 原生ajax访问后台读取数据并显示在页面上
1.前台调用ajax访问后台方法,并接收数据 <%@ page contentType="text/html;charset=UTF-8" language="ja ...
- Java类方法重载与重写
目录 - 方法重载 - 方法重写 @(Java类方法重载与重写) - 方法重载 1.方法名相同 2.参数列表不同 public void person(double height,double wei ...
- sqlmap用法大全
sqlmap参数详解: Usage: python sqlmap.py [options] Options(选项): -h, --help Show basic help mes ...