进一步完善登录注册功能
依旧没有测试
This commit is contained in:
parent
7303af1048
commit
c066f92a33
@ -17,6 +17,9 @@ use yii\web\IdentityInterface;
|
||||
*/
|
||||
class User extends \yii\db\ActiveRecord implements IdentityInterface
|
||||
{
|
||||
public $password2; // 重复密码
|
||||
public $rememberMe; // 记住我
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
@ -26,15 +29,27 @@ class User extends \yii\db\ActiveRecord implements IdentityInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* // rules说明
|
||||
* // 1. username, password, password2, email 必填
|
||||
* // 2. username 长度在3-12之间
|
||||
* // 3. password 长度在6-12之间
|
||||
* // 4. password2 必须和password一致
|
||||
* // 5. email 必须是邮箱格式
|
||||
* // 6. username, email 必须是唯一的
|
||||
* *
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
[['username', 'password'], 'required', 'on' => 'login'],
|
||||
[['username', 'password', 'email'], 'required', 'on' => 'register'],
|
||||
[['username', 'password', 'auth_key', 'email'], 'string', 'max' => 255],
|
||||
[['status'], 'integer'],
|
||||
[['username', 'password', 'password2'], 'required', 'on' => 'login'],
|
||||
[['username', 'password', 'email', 'password2'], 'required', 'on' => 'register'],
|
||||
['username', 'string', 'min' => 3, 'max' => 12],
|
||||
['password', 'string', 'min' => 6, 'max' => 12],
|
||||
['password2', 'compare', 'compareAttribute' => 'password', 'on' => 'register'],
|
||||
['email', 'email', 'on' => 'register'],
|
||||
['username', 'unique', 'on' => 'register'],
|
||||
['email', 'unique', 'on' => 'register'],
|
||||
];
|
||||
}
|
||||
|
||||
@ -110,7 +125,7 @@ class User extends \yii\db\ActiveRecord implements IdentityInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证用户名密码
|
||||
* 用户登录处理
|
||||
*
|
||||
* @return bool 返回用户名密码验证状态
|
||||
*/
|
||||
@ -119,13 +134,22 @@ class User extends \yii\db\ActiveRecord implements IdentityInterface
|
||||
$user = User::findOne(['username' => $this->username]);
|
||||
|
||||
if ($user !== null && $user->validatePassword($this->password)) {
|
||||
return Yii::$app->user->login($user);
|
||||
// check user status
|
||||
if ($user->status == 0) {
|
||||
$this->addError('username', '此用户已被禁用,请联系管理员获取支持');
|
||||
return false;
|
||||
}
|
||||
|
||||
$rememberMe = $this->rememberMe ? 3600 * 24 * 30 : 0;
|
||||
return Yii::$app->user->login($user, $rememberMe);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证密码
|
||||
*
|
||||
* @param $password
|
||||
* @return bool
|
||||
*/
|
||||
|
@ -1,22 +1,35 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\ActiveForm;
|
||||
use yii\bootstrap5\Html;
|
||||
use yii\bootstrap5\ActiveForm;
|
||||
|
||||
/** @var yii\web\View $this */
|
||||
/** @var app\models\User $model */
|
||||
/** @var ActiveForm $form */
|
||||
|
||||
$this->title = '用户登录';
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="user-login">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<?php $form = ActiveForm::begin(); ?>
|
||||
<p>请在下方输入你的用户凭证:</p>
|
||||
|
||||
<?= $form->field($model, 'username')->label('用户名') ?>
|
||||
<?= $form->field($model, 'password')->label('密码') ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-5">
|
||||
<?php $form = ActiveForm::begin();?>
|
||||
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton('登录', ['class' => 'btn btn-primary']) ?>
|
||||
<?= $form->field($model, 'username')->label('用户名')->textInput(['autofocus' => true]) ?>
|
||||
<?= $form->field($model, 'password')->passwordInput()->label('密码') ?>
|
||||
<?= $form->field($model, 'rememberMe')->checkbox()->label('记住本次登录') ?>
|
||||
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton('登录', ['class' => 'btn btn-primary']) ?>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?= Html::a('还没有账户? 点击注册', ['user/register']) ?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
||||
|
||||
</div>
|
||||
</div><!-- user-login -->
|
||||
|
@ -1,23 +1,36 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\ActiveForm;
|
||||
use yii\bootstrap5\Html;
|
||||
use yii\bootstrap5\ActiveForm;
|
||||
|
||||
/** @var yii\web\View $this */
|
||||
/** @var app\models\User $model */
|
||||
/** @var ActiveForm $form */
|
||||
|
||||
$this->title = '用户注册';
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="user-register">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<?php $form = ActiveForm::begin(); ?>
|
||||
<p>请在下方输入注册用户所需的信息:</p>
|
||||
|
||||
<?= $form->field($model, 'username')->label('用户名') ?>
|
||||
<?= $form->field($model, 'password')->label('密码') ?>
|
||||
<?= $form->field($model, 'email')->label('电子邮箱') ?>
|
||||
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton('注册', ['class' => 'btn btn-primary']) ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-5">
|
||||
<?php $form = ActiveForm::begin(); ?>
|
||||
|
||||
<?= $form->field($model, 'username')->label('用户名')->textInput(['autofocus' => true]) ?>
|
||||
<?= $form->field($model, 'password')->passwordInput()->label('密码') ?>
|
||||
<?= $form->field($model, 'password2')->passwordInput()->label('重复密码') ?>
|
||||
<?= $form->field($model, 'email')->label('电子邮箱') ?>
|
||||
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton('注册', ['class' => 'btn btn-primary']) ?>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?= Html::a('已经有账户? 点击登录', ['user/login']) ?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
||||
|
||||
</div>
|
||||
</div><!-- user-register -->
|
||||
|
Loading…
Reference in New Issue
Block a user