yii2登录笔记
yii2高级模板中自带了登录注册功能,这里先记下登录功能的实现笔记
创建一张用户user表,里面需要根据user 的model文件进行更改一些字段名和添加,password_hash是指用yii2进行哈希加密后的密码串。auth_key使用用户注册时加的唯一标示,可以用来在浏览器记住用户登录有效期时间。
public function actionLogin(){
$this->layout = 'login';
$model = new LoginForm;
$post = $model->load(Yii::$app->request->post());//验证是否有post数据
// var_dump($post);
// $user = $model->validate();//验证用户所输入的账号密码是否正确
// var_dump($user);
// $login = $model->login();//验证成功后,调用表单model的方法,model在调用数据模型的方法,添加用户成功登录的状态
// var_dump($login);
if($model->load(Yii::$app->request->post()) && $model->login()){
$this->redirect('/document/add');
}else{
// echo '~';
// var_dump($model->load(Yii::$app->request->post()));
// var_dump($model->login());
// echo '.';
// var_dump(Yii::$app->user->isGuest);//判断用户是否已经登录
// $userid=Yii::$app->user->getId();//获得登录用户的id
//$username = Yii::$app->user->identity->username;//获得数据模型的username字段.
// var_dump($userid);
return $this->render('login',['model'=>$model]);
}
// $hash = Yii::$app->getSecurity()->generatePasswordHash('123456');//使用yii自带的哈希加密方式生成密码
// var_dump($hash);
// $result = Yii::$app->getSecurity()->validatePassword('123456', '$2y$13$BpU6wGouTHsOOxUkPjqwO.w8nelzJtZsYRE83l/VE0d8IPSro.qWm') ;以哈希加密用户输入的密码在和数据库的密码进行比较,返回的值是布尔型的。
// var_dump($result);
//$res = $model->getUser();
}
还没有评论,来说两句吧...