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 ...
随机推荐
- Ray聊天记录
由于工作变动,Ray的文档.示例没有及时更新,深表歉意.在Ray升级后,性能较几个月前有了非常大的提升,也更具易用性.这是QQ交流群里大家的聊天记录,跟大家分享一下(由于时间仓促群里大家的聊天记录没有 ...
- 《ElasticSearch6.x实战教程》之分词
第四章-分词 下雨天留客天留我不留 本打算先介绍"简单搜索",对ES的搜索有一个直观的感受.但在写的过程中发现分词无论如何都绕不过去.term查询,match查询都与分词息息相关, ...
- UVA10763 交换学生 Foreign Exchange 题解
题目链接: https://www.luogu.org/problemnew/show/UVA10763 题目分析: 本题我首先想到的做法是把每一个数都map一下,然后互相判断,例如a,b两人准备交换 ...
- vue使用问题总结(长期更新)
循环中绑定标签的属性 <div class="imgdiv" v-for="template of templateArr"> <img :s ...
- vijos P1911 珠心算测验
#include<iostream> using namespace std; int main() { int n; int sum = 0; int num[200]; cin > ...
- NPOI 日期类型的判断
NPOI目前我用到有两套类,一套是为了读写XLS:一套是读写XLSX 在读取文件时大都会判断单元格类型,方式大同小异,只有日期类型不同. 默认日期类型的单元格在NPOI都认为是数值类型(CellTyp ...
- C#开发OPC Client程序
前一段时间写了一个OPC Client程序,现在将简单介绍一下程序开发方法.测试环境最后将我写的程序开源到Github上去. 一.开发方法 我这里用的是一个OPC动态库OPCAutomation.dl ...
- JAVA 基于TCP协议的一对一,一对多文件传输实现
最近老师给我们上了多线程和TCP和UDP协议,其中一个要求就是我们用JAVA协议一个基于TCP和UDP这两种协议的一对一文件上传和一对多文件上传. 然后我就开始分析TCP和UDP这两个协议的特点,发现 ...
- PHP与ECMAScript_7_流程控制
PHP ECMAScript 顺序结构 默认从上到下依次执行 默认从上到下依次执行 分支结构 if / switch if / switch 循环结构 for / while / do-w ...
- 【WPF】大量Canvas转换为本地图片遇到的问题
原文地址:https://www.cnblogs.com/younShieh 项目中遇到一个难题,需要将上百个没有显示出来的Canvas存储为图片保存在本地. 查阅资料后(百度一下)后得知保存为本 ...