- 注冊
//-會(huì)員注冊
public function actionRegister(){
if (\Yii::$app->request->isPost){
$model= new Member();
$model->username=\Yii::$app->request->post('username');
$password=\Yii::$app->request->post('password_hash');
$model->password_hash=\Yii::$app->security->generatePasswordHash($password);
// \Yii::$app->security->generatePasswordHash($this->password);
$model->tel=\Yii::$app->request->post('tel');
$model->email=\Yii::$app->request->post('email');
if ($model->validate()){
$model->save();
//注冊成功
$result = [
'errorCode'=>0,
'errorMsg'=>'注冊成功',
'data'=>[
'id'=>$model->id,
'usernam'=>$model->username,
'tel'=>$model->tel,
'email'=>$model->email,
]
];
}else{
//驗(yàn)證不通過
$result = [
'errorCode'=>10,
'errorMsg'=>'注冊失敗以清,請檢測錯(cuò)誤信息',
'data'=>$model->getErrors()
];
}
}else{
$result = [
'errorCode'=>99,
'errorMsg'=>'請求方式錯(cuò)誤,請使用POST提交數(shù)據(jù)',
'data'=>[]
];
}
return json_encode($result);
}
- 登錄
public function actionLogin(){
$model=new LoginForm();
$request=new Request();
if ($request->isPost){
$model->load($request->post());
if ( $model->validate()){
//通過驗(yàn)證
$username=Member::findOne(['username'=>$model->username]);
// var_dump($username);exit;
if ($username){
// var_dump($username->password_hash,$model->password_hash);exit;
// \Yii::$app->security->validatePassword(明文,密文)
if (\Yii::$app->security->validatePassword($model->password_hash,$username->password_hash)){
$username->last_login_time=time();
$username->last_login_ip=\Yii::$app->request->userIP;
//保存登錄信息;
\Yii::$app->user->login($username,$model->rememberMe?7*24*3600:0);
///由于有驗(yàn)證碼,所以保存的時(shí)候要false
$username->save(false);
return $this->redirect(['member/index']);
}else{
$model->addError('password_hash','密碼錯(cuò)誤');
}
}else{
$model->addError('username','沒有該帳號(hào)');
}
}
}
return $this->render('login',['model'=>$model]);
}
登錄注意
模型登錄必須實(shí)現(xiàn)接口(implements) IdentityInterface
public static function findIdentity($id)
{
return self::findOne($id);
// TODO: Implement findIdentity() method.
}
public function getId()
{
return $this->id;
// TODO: Implement getId() method.
}
public function getAuthKey()
{
return $this->auth_key;
// TODO: Implement getAuthKey() method.
}
public function validateAuthKey($authKey)
{
return $this->auth_key==$authKey;
// TODO: Implement validateAuthKey() method.
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者