婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > YII2框架中自定義用戶認(rèn)證模型,完成登陸和注冊(cè)操作示例

YII2框架中自定義用戶認(rèn)證模型,完成登陸和注冊(cè)操作示例

熱門(mén)標(biāo)簽:重慶外呼電銷(xiāo)系統(tǒng)多少錢(qián) 咸陽(yáng)電銷(xiāo) 嘟嘟云外呼系統(tǒng) 南寧電話外呼系統(tǒng)線路 辦理400電話哪家好點(diǎn) 邢臺(tái)400電話辦理 南京3D地圖標(biāo)注 濟(jì)源百應(yīng)電銷(xiāo)機(jī)器人聯(lián)系方式 正規(guī)電銷(xiāo)機(jī)器人系統(tǒng)

本文實(shí)例講述了YII2框架中自定義用戶認(rèn)證模型,完成登陸和注冊(cè)操作。分享給大家供大家參考,具體如下:

有些時(shí)候我們需要自已定義用戶類(lèi),操作自已建的用戶表,來(lái)完成登陸和注冊(cè)功能。

用戶表結(jié)構(gòu)如下,當(dāng)然可以根據(jù)自已的需要添加或刪除:

CREATE TABLE `tb_user` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用戶ID',
 `name` varchar(32) DEFAULT '' COMMENT '用戶名',
 `pwd` varchar(64) DEFAULT '' COMMENT '密碼',
 `head_img` varchar(256) DEFAULT '' COMMENT '圖像',
 `sex` tinyint(1) DEFAULT '0' COMMENT '性別(0:男,1:女)',
 `age` tinyint(3) DEFAULT '0' COMMENT '年齡',
 `auth_key` varchar(32) DEFAULT '' COMMENT '認(rèn)證密鑰',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶表';

然后我們?cè)趍odels下創(chuàng)建MyUser.php,代碼如下:

?php

namespace app\models;

use YII;
use yii\db\ActiveRecord;
use yii\web\IdentityInterface;

//我們自定義自已的用戶操作模型,需要實(shí)現(xiàn)IdentityInterface接口中的全部方法
//我們自定義的模型主要實(shí)現(xiàn)的是認(rèn)證邏輯,而yii\web\User是負(fù)責(zé)管理用戶認(rèn)證狀態(tài)的,兩者是有區(qū)別的。
class MyUser extends ActiveRecord implements IdentityInterface
{
  //指定操作的表名
  public static function tableName()
  {
    return '{{%user}}';
  }

  //通過(guò)ID,返回用戶實(shí)例
  public static function findIdentity($id)
  {
    return static::findOne($id);
  }

  //通過(guò)令牌,返回用戶實(shí)例,一般用于無(wú)狀態(tài)的restful應(yīng)用
  //如果你的應(yīng)用不需要用到,直接留空就行
  public static function findIdentityByAccessToken($token, $type = null)
  {
    return static::findOne(['access_token' => $token]);
  }

  //通過(guò)用戶名,返回用戶實(shí)例
  public static function findByUsername($name)
  {
    return static::findOne(['name' => $name]);
  }

  //獲取用戶ID
  public function getId()
  {
    return $this->id;
  }

  //獲取用戶認(rèn)證密鑰
  public function getAuthKey()
  {
    return $this->auth_key;
  }

  //生成cookie中的authkey
  public function generateAuthKey()
  {
    $this->auth_key = Yii::$app->security->generateRandomString(32);
    $this->save(false);
  }

  //驗(yàn)證用戶認(rèn)證密鑰
  public function validateAuthKey($authKey)
  {
    return $this->getAuthKey() === $authKey;
  }

  //驗(yàn)證密碼是否正確,當(dāng)然我們也可以自已定義加密解密方式
  public function validatePassword($password)
  {
    return Yii::$app->security->validatePassword($password, $this->pwd);
  }
}

創(chuàng)建完我們自已的用戶模型類(lèi)后,我們需要在配置文件中修改成我們自已的,在config\web.php

'components' => [
	// ...
	'user' => [
		'identityClass' => 'app\models\MyUser',
		'enableAutoLogin' => true,
	],
];

然后我們創(chuàng)建一個(gè)登陸頁(yè)面

?php
use yii\helpers\Url;
?>
!doctype html>
html lang="zh-CN">
head>
  meta charset="UTF-8">
  title>表單提交/title>
/head>
body>
form action="?php echo Url::toRoute('index/login'); ?>" method="post">
  姓名:input type="text" name="name">br>
  密碼:input type="password" name="pwd">br>
  input type="submit" value="登陸">
  input name="_csrf" type="hidden" value="?php echo \Yii::$app->request->csrfToken; ?>">
/form>
/body>
/html>

然后是處理用戶登陸的,表單模型,在models下創(chuàng)建MyUserLogin.php

?php

namespace app\models;

use Yii;
use yii\base\Model;

class MyUserLogin extends Model
{
  //注意這里要聲明表單中提交過(guò)來(lái)的變量
  public $name;
  public $pwd;

  //設(shè)置驗(yàn)證
  public function rules()
  {
    return [
      [['name', 'pwd'], 'required'],
      ['pwd', 'validatePassword'],
    ];
  }

  //驗(yàn)證密碼
  public function validatePassword($attribute, $params)
  {
    if (!$this->hasErrors()) {
      $user = $this->getUser();

      if (!$user || !$user->validatePassword($this->pwd)) {
        $this->addError($attribute, '密碼錯(cuò)誤');
      }
    }
  }

  //登陸處理
  public function login()
  {
    if ($this->validate()) {
      $user = $this->getUser();
      //監(jiān)聽(tīng)事件,登陸前,重新生成authkey
      YII::$app->user->on(\yii\web\User::EVENT_BEFORE_LOGIN, [$user, 'generateAuthKey']);

      return Yii::$app->user->login($user, 3600 * 24);
    }
    return false;
  }

  //獲取用戶
  public function getUser()
  {
    return MyUser::findByUsername($this->name);
  }
}

最后就是我們的控制器代碼

?php

namespace app\controllers;

use YII;
use yii\web\Controller;
use app\models\MyUserLogin;

class IndexController extends Controller
{
  public function actionIndex()
  {
    //當(dāng)前用戶的ID
    var_dump(YII::$app->user->id);
    //當(dāng)前用戶是否是游客
    var_dump(YII::$app->user->isGuest);
  }

  public function actionLogin()
  {
    if (YII::$app->request->isPost) {

      $model = new MyUserLogin();
      $model->load(YII::$app->request->post(), '');

      if ($model->login()) {
        echo '登陸成功';
      } else {
        echo '登陸失敗';
      }

    } else {
      return $this->renderPartial('login');
    }
  }
}

演示如下:

更多關(guān)于Yii相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Yii框架入門(mén)及常用技巧總結(jié)》、《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》、《smarty模板入門(mén)基礎(chǔ)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • Yii2.0框架模型添加/修改/刪除數(shù)據(jù)操作示例
  • Yii2.0框架模型多表關(guān)聯(lián)查詢示例
  • Yii中Model(模型)的創(chuàng)建及使用方法
  • yii框架表單模型使用及以數(shù)組形式提交表單數(shù)據(jù)示例
  • PHP YII框架開(kāi)發(fā)小技巧之模型(models)中rules自定義驗(yàn)證規(guī)則
  • PHP的Yii框架中Model模型的學(xué)習(xí)教程
  • Yii框架數(shù)據(jù)模型的驗(yàn)證規(guī)則rules()被執(zhí)行的方法
  • YII動(dòng)態(tài)模型(動(dòng)態(tài)表名)支持分析
  • Yii框架表單模型和驗(yàn)證用法
  • Yii模型操作之criteria查找數(shù)據(jù)庫(kù)的方法
  • Yii數(shù)據(jù)模型中rules類(lèi)驗(yàn)證器用法分析
  • yii2.0框架多模型操作示例【添加/修改/刪除】

標(biāo)簽:通遼 河南 南通 唐山 黃山 武漢 平頂山 隴南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《YII2框架中自定義用戶認(rèn)證模型,完成登陸和注冊(cè)操作示例》,本文關(guān)鍵詞  YII2,框架,中,自定義,用戶,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《YII2框架中自定義用戶認(rèn)證模型,完成登陸和注冊(cè)操作示例》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于YII2框架中自定義用戶認(rèn)證模型,完成登陸和注冊(cè)操作示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日韩亚洲综合一区 | 精品国产1区二区| 国产盗摄一区二区三区| 看国产成人h片视频| 麻豆精品视频在线观看视频| 日本高清免费不卡视频| 一区二区三区产品免费精品久久75| 99久久er热在这里只有精品66| 综合激情成人伊人| 欧美日韩久久一区二区| 看国产成人h片视频| 国产女主播一区| 99久久久精品| 亚洲.国产.中文慕字在线| 男女男精品视频网| 日韩午夜在线观看| 亚洲素人一区二区| 奇米影视一区二区三区| 日韩久久免费av| 亚洲制服欧美中文字幕中文字幕| 在线欧美一区二区| 免费在线看成人av| 国产精品成人网| 国产一区欧美二区| 在线观看视频91| 久久激五月天综合精品| 国产精品乱人伦中文| 欧美精品久久一区二区三区| 中国av一区二区三区| 91高清视频在线| 国产精品69毛片高清亚洲| 欧美一区二区三区色| 国产精品自拍av| 图片区小说区区亚洲影院| yourporn久久国产精品| 午夜国产精品一区| 亚洲视频在线观看三级| 日韩精品中文字幕一区二区三区 | 免费视频一区二区| 国产欧美一区在线| 久久精品欧美日韩精品| 午夜精品久久久久久久久久久| 日韩精品一区二区三区视频在线观看| 亚洲三级在线播放| 成a人片国产精品| 另类小说视频一区二区| 亚洲一区视频在线| 国产精品不卡在线| 国产欧美精品在线观看| 欧美xfplay| 久久国内精品视频| 欧美精品1区2区| 亚洲综合色视频| 91色视频在线| 精品一区二区三区在线观看| 精品少妇一区二区三区免费观看| 色综合激情五月| 亚洲国产精品自拍| 亚洲欧美在线观看| 亚洲欧美综合另类在线卡通| 欧美激情在线免费观看| 久久精品男人的天堂| 99精品热视频| 国产成人免费视| 亚洲视频每日更新| 国产精品国产三级国产aⅴ无密码| 国产成人在线视频网站| 精品夜夜嗨av一区二区三区| 老司机精品视频一区二区三区| 2017欧美狠狠色| 欧美精品xxxxbbbb| 91麻豆精品国产91久久久资源速度| 欧美色网站导航| 7777精品伊人久久久大香线蕉完整版 | 亚洲电影在线播放| 在线精品视频小说1| 91污在线观看| 裸体健美xxxx欧美裸体表演| 欧美aaa在线| 国产二区国产一区在线观看| 欧美狂野另类xxxxoooo| 欧美大片一区二区| 国产精品污污网站在线观看| 色伊人久久综合中文字幕| 色婷婷综合久久久中文字幕| 久久精品国产成人一区二区三区| 日韩精品电影在线| 国产一区二区伦理| 五月综合激情日本mⅴ| 国产日产欧产精品推荐色| 国产精品久久久久久户外露出| 91精品综合久久久久久| 久久久久久久久久久久久女国产乱| 中文字幕中文字幕一区二区| 水野朝阳av一区二区三区| 国产91精品精华液一区二区三区| 欧洲精品在线观看| 26uuu国产在线精品一区二区| 欧美日韩专区在线| 日韩精品一区二区三区三区免费| 国产精品人成在线观看免费| 午夜久久久久久久久| 国产盗摄女厕一区二区三区 | 欧美欧美欧美欧美| av一区二区久久| 国产一区二区精品在线观看| av在线一区二区三区| 免费成人深夜小野草| 亚洲人成人一区二区在线观看| 香蕉加勒比综合久久 | 精品一区二区三区在线视频| 亚洲一区在线观看视频| 国产精品热久久久久夜色精品三区 | 色天天综合久久久久综合片| 国产一区二区三区日韩| 日韩成人一级片| 视频在线在亚洲| 99精品国产视频| 久久久久久久久久电影| 久久精品这里都是精品| 亚洲成人777| 亚洲电影在线播放| 成人激情免费网站| 99精品欧美一区二区蜜桃免费 | 国内精品久久久久影院色| 琪琪久久久久日韩精品| 日韩二区在线观看| 免费在线观看精品| 美女一区二区在线观看| 另类小说欧美激情| 国产一区二区调教| 中文字幕在线观看不卡视频| 麻豆精品视频在线观看视频| 欧美日韩在线综合| 日韩美女在线视频| 久久夜色精品国产噜噜av| 三级不卡在线观看| 欧美私模裸体表演在线观看| 91麻豆精品国产91久久久久久久久 | 日韩三级视频在线看| 欧美日韩国产一区二区三区地区| 欧美精品亚洲二区| 欧美精品一区二区三区四区| 国产日产欧美一区| 国产电影一区二区三区| 国产精品成人免费| 91麻豆国产在线观看| 欧美日韩国产影片| 欧美成人精品1314www| 日韩影院在线观看| 国产成人三级在线观看| 91精品国产色综合久久ai换脸| 日韩视频一区二区三区在线播放| 亚洲成人黄色影院| 国产99久久久国产精品潘金| 久久久久久夜精品精品免费| 亚洲精品成人a在线观看| 日韩国产精品久久久| 91精品国产综合久久小美女| 久久精品欧美一区二区三区麻豆 | 国产成人精品在线看| 国产女人水真多18毛片18精品视频 | 亚洲激情在线激情| 青青青爽久久午夜综合久久午夜| 国产精品一区二区x88av| 久久精品在线观看| 色综合 综合色| 久久精品欧美一区二区三区不卡| 国产精品99久久久久久有的能看| 国产精品日韩精品欧美在线| 一区二区三区在线影院| 欧美一区二区在线免费观看| 在线观看视频欧美| 免费成人美女在线观看.| 久久久久久麻豆| 日韩成人精品在线| 日韩欧美在线综合网| 亚洲一区二区三区影院| 欧美日韩国产bt| 成人爽a毛片一区二区免费| 91精品在线麻豆| 粉嫩一区二区三区在线看| 亚洲一区二区三区在线看| 日韩欧美第一区| 在线中文字幕不卡| 一区二区免费在线播放| 日韩欧美色电影| 91精彩视频在线观看| 国产乱码精品1区2区3区| 无码av中文一区二区三区桃花岛| 国产欧美精品区一区二区三区| 欧美一区二区三区日韩视频| 91久久精品一区二区三区| 粉嫩一区二区三区性色av| 石原莉奈在线亚洲二区| 中文字幕日韩欧美一区二区三区| 精品精品国产高清a毛片牛牛| 欧美日韩和欧美的一区二区| 亚洲精品久久嫩草网站秘色| 久久婷婷国产综合精品青草|