本文整理汇总了PHP中common\models\User::generateDynamicKey方法的典型用法代码示例。如果您正苦于以下问题:PHP User::generateDynamicKey方法的具体用法?PHP User::generateDynamicKey怎么用?PHP User::generateDynamicKey使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类common\models\User
的用法示例。
在下文中一共展示了User::generateDynamicKey方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: signup
/**
* Signs user up.
*
* @return User|null the saved model or null if saving fails
*/
public function signup()
{
if (!$this->validate()) {
return false;
}
$transaction = Yii::$app->db->beginTransaction();
try {
$key = User::generateDynamicKey();
$user = new User();
$user->username = $this->username;
$user->email = $this->email;
$user->setPassword($this->password);
$user->generateAuthKey();
$user->setDynamicKey($key, User::DYNAMIC_KEY_ACTIVATE_LIFE);
$user->save();
$title = 'Activate Account on find.forfreedomandlove.com';
$content = "<br><br>" . 'Click the following link to activate the account you have registered on find.forfreedomandlove.com';
$content .= "<br><a href=\"https://find.forfreedomandlove.com/user/index/activate/{$user->id}/{$key}\" target=\"_blank\">";
$content .= "https://find.forfreedomandlove.com/user/index/activate/{$user->id}/{$key}</a>";
$content .= "<br>" . 'You can also copy the link and open it in the Address Field' . "<br><br><br>";
$mail = Yii::$app->mailer->compose()->setTo($this->email)->setSubject($title)->setHtmlBody($content)->send();
if ($mail) {
$transaction->commit();
return true;
}
} catch (Exception $e) {
$transaction->rollBack();
$this->addError('user', 'fail to create account');
}
return false;
}
示例2: sendKey
/**
* Logs in a user using the provided username and password.
*
* @return boolean whether the user is logged in successfully
*/
public function sendKey()
{
if (!$this->validate()) {
return false;
}
$user = $this->getUser();
$transaction = Yii::$app->db->beginTransaction();
try {
if ($user->dynamic_key && $user->validateDynamicKey($user->dynamic_key)) {
throw new HurryDynamicKeyException('Current Dynamic key has not expired,please check you email');
}
$key = User::generateDynamicKey();
$user->setDynamicKey($key, User::DYNAMIC_KEY_LOGIN_LIFE);
$user->save();
if ($this->password) {
$title = 'Dynamic Key to Login find.forfreedomandlove.com';
$content = "<br><br>Dynamic Key: " . $key;
$content .= "<br><br>" . 'the dynamic key will expired after ' . User::DYNAMIC_KEY_LOGIN_LIFE . ' minutes';
$content .= "<br>" . 'If this dynamic key is not sent by you ,your password has disclosed,and you should change your password as soon as possible ' . "<br><br><br><br><br>";
} else {
$title = 'Dynamic Key to Reset Password for the account on find.forfreedomandlove.com';
$content = "<br><br>" . $key;
$content .= "<br>" . 'the dynamic key will expired after ' . User::DYNAMIC_KEY_LOGIN_LIFE . ' minutes';
$content .= "<br><br><br><br><br><br>";
}
$mail = Yii::$app->mailer->compose()->setTo($user->email)->setSubject($title)->setHtmlBody($content)->send();
if ($mail) {
$transaction->commit();
return true;
}
} catch (\yii\base\Exception $e) {
$transaction->rollBack();
if ($e instanceof \yii\db\Exception) {
$this->addError('dynamic_key', 'fail to save dynamic key to database');
} else {
$this->addError('dynamic_key', $e->getMessage());
}
}
return false;
}
示例3: actionChangeEmail
/**
**显示修改邮箱的表单(get);修改用户的认证邮箱(post),若修改成功,将账号变为未激活状态,并自动下线,用户需要到新的认证邮箱中点击激活链接对账号进行激活.
* @return string whether or not the email has been changed successfully
*/
public function actionChangeEmail()
{
if (Yii::$app->request->isGet) {
$csrf = Yii::$app->request->csrfToken;
return $this->render('change-email', ['csrf' => $csrf]);
}
$new_email = Yii::$app->request->post('new_email');
$key = Yii::$app->request->post('dynamic_key');
if (!$new_email || !$key) {
AjaxResponse::fail(null, 'Both new email and dynamic key are required');
}
if (User::findOne(['email' => $new_email])) {
AjaxResponse::fail(null, 'the email you provided has been used');
}
$user = User::getCurrent();
if (!$user->validateDynamicKey($key)) {
AjaxResponse::fail(null, 'Incorrect Dynamic Key is provided');
}
$user->email = $new_email;
$user->is_activated = false;
$activate_key = User::generateDynamicKey();
$user->setDynamicKey($activate_key, User::DYNAMIC_KEY_ACTIVATE_LIFE);
$user->save();
$title = 'Activate Account on find.forfreedomandlove.com';
$content = "<br><br>" . 'Click the Activate Link to activate the account you have registered on find.forfreedomandlove.com';
$content .= "<br><br>Activate Link: <a href=\"https://find.forfreedomandlove.com/user/index/activate/{$user->id}/{$activate_key}\" target=\"_blank\">";
$content .= "https://find.forfreedomandlove.com/user/index/activate/{$user->id}/{$activate_key}</a>";
$content .= "<br><br>" . 'You can also copy the link and open it in the Address Field' . "<br><br><br>";
Yii::$app->mailer->compose()->setTo($new_email)->setSubject($title)->setHtmlBody($content)->send();
Yii::$app->user->logout();
AjaxResponse::success();
}