本文整理汇总了PHP中Users::hashPassword方法的典型用法代码示例。如果您正苦于以下问题:PHP Users::hashPassword方法的具体用法?PHP Users::hashPassword怎么用?PHP Users::hashPassword使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Users
的用法示例。
在下文中一共展示了Users::hashPassword方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: inscriptionAction
function inscriptionAction()
{
$this->metas(array('DC.Title' => "Fiche d'inscription"));
$this->branche->append();
$m = new Wtk_Form_Model('inscription');
// FICHE INDIVIDU
$g = $m->addGroup('fiche');
$i = $g->addString('prenom', "Prénom");
$m->addConstraintRequired($i);
$i = $g->addString('nom', "Nom");
$m->addConstraintRequired($i);
$t = new Unites();
$sexes = $t->findSexesAccueillis();
if (in_array('m', $sexes) || count($sexes) > 1) {
$enum = array('h' => 'Masculin', 'f' => 'Féminin');
$i = $g->addEnum('sexe', 'Sexe', null, $enum);
$m->addConstraintRequired($i);
} else {
$i = $g->addString('sexe', 'Sexe', $sexes[0])->setReadonly(true);
}
$i = $g->addDate('naissance', "Date de naissance", 0);
$m->addConstraintRequired($i);
// COMPTE
$g = $m->addGroup('compte');
$i = $g->addEMail('adelec', "Adresse électronique");
$t = new Inscriptions();
$m->addConstraintForbid($i, $t->findAllEMails(), "Cette adresse électronique est déjà utilisée");
$i0 = $g->addString('motdepasse', "Mot de passe");
$m->addConstraintLength($i0, 6);
$i1 = $g->addString('confirmer', "Confirmer");
$m->addConstraintEqual($i1, $i0);
$i = $g->addString('presentation', "Présentation");
$m->addConstraintRequired($i);
$this->view->model = $pm = new Wtk_Pages_Model_Form($m);
if ($pm->validate()) {
$data = $m->get('fiche');
$data['adelec'] = strtolower($m->get('compte/adelec'));
$data['password'] = Users::hashPassword($m->get('compte/adelec'), $m->get('compte/motdepasse'));
$data['presentation'] = $m->compte->presentation;
$db = $t->getAdapter();
$db->beginTransaction();
try {
$k = $t->insert($data);
$i = $t->findOne($k);
$this->logger->info("Nouvelle inscription", $this->_helper->Url('valider', 'membres', null, array('adelec' => $i->adelec)));
$this->_helper->Flash->info("Inscription en modération");
$mail = new Strass_Mail_Inscription($i);
try {
$mail->send();
} catch (Zend_Mail_Transport_Exception $e) {
$this->logger->error("Échec de l'envoi de mail aux admins", null, $e);
}
$db->commit();
} catch (Exception $e) {
$db->rollBack();
throw $e;
}
$this->redirectSimple('index', 'unites', null, array(), true);
}
}
示例2: AuthenticateLogin
static function AuthenticateLogin($data, $settings, $marathon, $campaign, $database)
{
$userName = '';
$password = '';
$salt = '';
$error = false;
$errorMessage;
$output;
if (array_key_exists('username', $data)) {
$userName = $data['username'];
} else {
if (array_key_exists(0, $data)) {
$userName = $data[0];
} else {
$error = true;
$errorMessage = 'No username was provided.';
}
}
if (array_key_exists('password', $data)) {
$password = $data['password'];
} else {
if (array_key_exists(1, $data)) {
$password = $data[1];
} else {
$error = true;
$errorMessage = 'No password was provided.';
}
}
if (!$error) {
$sql = 'CALL sp_return_passwordsalt (:username, :marathon_id, :campaign_id)';
$statement = $database->prepare($sql);
if ($statement->execute([':username' => $userName, ':marathon_id' => $marathon, ':campaign_id' => $campaign])) {
$salt = $statement->fetchAll(PDO::FETCH_ASSOC);
if (isset($salt[0]['salt'])) {
$salt = $salt[0]['salt'];
} else {
$error = true;
$errorMessage = 'No user found with that username.';
}
}
}
if ($database instanceof ZdpArrayObject) {
$error = true;
$errorMessage = $database['error'];
}
if (!$error) {
$sql = 'CALL sp_return_authentication (:username, :password, :marathon_id, :campaign_id)';
$statement = $database->prepare($sql);
if ($statement->execute([':username' => $userName, ':password' => Users::hashPassword($password, $salt), ':marathon_id' => $marathon, ':campaign_id' => $campaign])) {
$user = $statement->fetchAll(PDO::FETCH_ASSOC);
$_SESSION['userId'] = $user[0]['user_id'];
$output = new ZdpArrayObject(['result' => session_id()]);
} else {
$output = new ZdpArrayObject(['error' => $statement->errorInfo()]);
}
} else {
$output = new ZdpArrayObject(['error' => $errorMessage]);
}
return $output;
}
示例3: authenticate
/**
* Authenticates a user.
* The example implementation makes sure if the username and password
* are both 'demo'.
* In practical applications, this should be changed to authenticate
* against some persistent user identity storage (e.g. database).
* @return boolean whether authentication succeeds.
*/
public function authenticate()
{
if (preg_match('/@/', $this->username)) {
//$this->username can filled by username or email
$record = Users::model()->findByAttributes(array('email' => $this->username));
} else {
$record = Users::model()->findByAttributes(array('username' => $this->username));
}
if ($record === null) {
$this->errorCode = self::ERROR_USERNAME_INVALID;
} else {
if ($record->password !== Users::hashPassword($record->salt, $this->password)) {
$this->errorCode = self::ERROR_PASSWORD_INVALID;
} else {
$this->_id = $record->user_id;
$this->setState('level', $record->level_id);
$this->setState('profile', $record->profile_id);
$this->setState('language', $record->language_id);
$this->email = $record->email;
$this->setState('username', $record->username);
$this->setState('displayname', $record->displayname);
$this->setState('creation_date', $record->creation_date);
$this->setState('lastlogin_date', $record->lastlogin_date);
$this->errorCode = self::ERROR_NONE;
}
}
return !$this->errorCode;
}
示例4: save
/**
* Save the model
* @return boolean True if the model was updated, False otherwise
*/
function save()
{
# Sanitization
if (empty($this->login)) {
return false;
}
$this->modified = date('Y-m-d H:i:s');
$this->nicename = $this->nicename ? $this->nicename : $this->email;
$this->login = $this->login ? $this->login : $this->email;
if (substr($this->password, 0, 4) != '$2a$') {
$this->password = Users::hashPassword($this->password);
}
return parent::save();
}
示例5: actionCreate
/**
* Creates a new model.
* If creation is successful, the browser will be redirected to the 'view' page.
*/
public function actionCreate()
{
$model = new Users();
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if (isset($_POST['Users'])) {
$model->attributes = $_POST['Users'];
$acak = $model->generateSalt();
$model->password = $model->hashPassword($_POST['Users']['password'], $acak);
if ($model->save()) {
$this->redirect(array('view', 'id' => $model->id));
}
}
$this->render('create', array('model' => $model));
}
示例6: initAdmin
function initAdmin()
{
extract($this->data['admin']);
$i = new Individu();
$i->prenom = $prenom;
$i->nom = $nom;
$i->sexe = $sexe;
$i->adelec = $adelec;
$i->naissance = $naissance;
$i->slug = $i->getTable()->createSlug($i->getFullname());
$i->save();
$u = new User();
$u->individu = $i->id;
$u->username = $adelec;
$u->password = Users::hashPassword($adelec, $motdepasse);
$u->admin = true;
$u->save();
Zend_Registry::set('user', $u);
}
示例7: actionStep4
/**
* Создание админа
*/
public function actionStep4()
{
$model = new Step4Form();
if (isset($_POST['Step4Form'])) {
$model->setAttributes($_POST['Step4Form']);
if ($model->validate()) {
$transaction = db()->beginTransaction();
try {
db()->createCommand()->insert('{{users}}', array('login' => $model->login, 'password' => Users::hashPassword($model->password), 'email' => $model->email, 'activated' => Users::STATUS_ACTIVATED, 'referer' => Users::generateRefererCode(), 'role' => Users::ROLE_ADMIN, 'registration_ip' => userIp(), 'ls_id' => 1, 'created_at' => date('Y-m-d H:i:s')));
db()->createCommand()->insert('{{user_profiles}}', array('user_id' => db()->getLastInsertID(), 'balance' => 100500));
$transaction->commit();
$this->redirect(array('step5'));
} catch (Exception $e) {
$transaction->rollback();
user()->setFlash(FlashConst::MESSAGE_ERROR, $e->getMessage());
}
}
}
$this->render('step4', array('model' => $model));
}
示例8: actionStep2
public function actionStep2($hash)
{
$cache = new CFileCache();
$cache->init();
if (($hashInfo = $cache->get($this->_cacheName . $hash)) !== FALSE) {
$cache->delete($this->_cacheName . $hash);
$user = db()->createCommand("SELECT COUNT(0) FROM `{{users}}` WHERE `email` = :email AND `login` = :login LIMIT 1")->bindParam('email', $hashInfo['email'], PDO::PARAM_STR)->bindParam('login', $hashInfo['login'], PDO::PARAM_STR)->queryScalar();
if ($user) {
$newPassword = Users::generatePassword(rand(Users::PASSWORD_MIN_LENGTH, Users::PASSWORD_MAX_LENGTH));
// Обновляю пароль на сервере
try {
$l2 = l2('ls', $hashInfo['ls_id'])->connect();
$encryptPassword = $l2->passwordEncrypt($newPassword);
$login = $hashInfo['login'];
$email = $hashInfo['email'];
$res = $l2->getDb()->createCommand("UPDATE {{accounts}} SET password = :password WHERE login = :login LIMIT 1")->bindParam('password', $encryptPassword, PDO::PARAM_STR)->bindParam('login', $login, PDO::PARAM_STR)->execute();
if ($res) {
$encryptPassword = Users::hashPassword($newPassword);
db()->createCommand("UPDATE {{users}} SET password = :password WHERE email = :email AND login = :login LIMIT 1")->bindParam('password', $encryptPassword, PDO::PARAM_STR)->bindParam('email', $email, PDO::PARAM_STR)->bindParam('login', $login, PDO::PARAM_STR)->execute();
notify()->forgottenPasswordStep2($email, array('password' => $newPassword));
user()->setFlash(FlashConst::MESSAGE_SUCCESS, Yii::t('main', 'На почту указанную при регистрации отправлен новый пароль.'));
} else {
user()->setFlash(FlashConst::MESSAGE_ERROR, Yii::t('main', 'Произошла ошибка! Попробуйте повторить позже.'));
}
} catch (Exception $e) {
user()->setFlash(FlashConst::MESSAGE_ERROR, $e->getMessage());
}
} else {
user()->setFlash(FlashConst::MESSAGE_ERROR, Yii::t('main', 'Аккаунт не найден.'));
}
} else {
user()->setFlash(FlashConst::MESSAGE_ERROR, Yii::t('main', 'Ключ для восстановления пароля не найден.'));
}
if (user()->hasFlash(FlashConst::MESSAGE_ERROR)) {
$this->redirect(array('index'));
}
$this->redirect(array('/login/default/index'));
}
示例9: authenticate
public function authenticate($credential, $password, $cookie = false)
{
$this->dispatch('onBeginAuthenticate', new BaseEvent($this, array($credential)));
if (empty($credential) || empty($password)) {
return self::ERROR_CREDENTIAL_INVALID;
}
$this->_identity = $credential;
$this->_credential = $password;
if (strpos($credential, '@') !== false) {
$user = \Users::retrieveByEmail($credential);
} else {
$user = \Users::retrieveByUsername($credential);
}
if (!$user || empty($user) || !$user instanceof \Users) {
return self::ERROR_UNKNOWN_IDENTITY;
}
if ($user instanceof \Users) {
if ($user->password != \Users::hashPassword($password, $user->password)) {
return self::ERROR_CREDENTIAL_INVALID;
}
$this->_clearCookie();
if ($cookie) {
$this->setCookie($user);
}
$this->setSession($user);
$this->_setIsAuthenticated(true);
$user->setLastVisitTime(new DateTime());
$user->setLastLoginIp(Base::getApp()->getClientIp());
$user->save();
if ($user) {
$this->dispatch('onAfterAuthenticate', new BaseEvent($this, $user->getAttributes()));
}
return $this->isAuthenticated();
}
return false;
}
示例10: setCredential
public function setCredential($credential)
{
extract($this->_identity);
$this->_credential = Users::hashPassword($username, $credential);
return $this;
}
示例11: needUpdate
$usage = "\nUsage: php {$argv[0]} <IUnderStandTheRisks>";
echo $colorCLI->warning($warning);
if ($argc != 2) {
exit($colorCLI->error("\nWrong number of parameters{$usage}"));
} else {
if ($argv[1] !== 1 && $argv[1] != '<IUnderStandTheRisks>' && $argv[1] != 'IUnderStandTheRisks' && $argv[1] != 'true') {
exit($colorCLI->error("\nInvalid parameter(s){$usage}"));
}
}
$pdo = new Settings();
$users = $pdo->query("SELECT id, username, email, password FROM users");
$update = $pdo->Prepare('UPDATE users SET password = :password WHERE id = :id');
$Users = new Users(['Settings' => $pdo]);
foreach ($users as $user) {
if (needUpdate($user)) {
$hash = $Users->hashPassword($user['email']);
if ($hash !== false) {
$update->execute([':password' => $hash, ':id' => $user['id']]);
echo $colorCLI->primary('Updating hash for user:') . $user['username'];
} else {
echo $colorCLI->error('Error updating hash for user:') . $user['username'];
}
}
}
function needUpdate($user)
{
global $colorCLI;
$status = true;
if (empty($user['email'])) {
$status = false;
echo $colorCLI->error('Cannot update password hash - Email is not set for user: ' . $user['username']);
示例12: dirname
* reason, it will allow the password hash on the account to be changed.
* Hopefully that will allow admin access to fix any further problems.
*/
require_once dirname(__FILE__) . '/../../../www/config.php';
use nzedb\db\Settings;
$pdo = new Settings();
if ($argc < 3) {
exit($pdo->log->error('Not enough parameters!' . PHP_EOL . 'Argument 1: New password.' . PHP_EOL . 'Argument 2: ID or username of the user.' . PHP_EOL));
}
$password = $argv[1];
$identifier = $argv[2];
if (is_numeric($password)) {
exit($pdo->log->error('Password cannot be numbers only!'));
}
$field = is_numeric($identifier) ? 'id' : 'username';
$user = $pdo->queryOneRow(sprintf("SELECT id, username FROM users WHERE %s = %s", $field, is_numeric($identifier) ? $identifier : $pdo->escapeString($identifier)));
if ($user !== false) {
$users = new Users(['Settings' => $pdo]);
$hash = $users->hashPassword($password);
$result = false;
if ($hash !== false) {
$hash = $pdo->queryExec(sprintf('UPDATE users SET password = %s WHERE id = %d', $hash, $user['id']));
}
if ($result === false || $hash === false) {
echo $pdo->log->error('An error occured during update attempt.' . PHP_EOL . $pdo->errorInfo());
} else {
echo $pdo->log->headerOver("Updated {$user['username']}'s password hash to: ") . $pdo->log->primary("{$hash}");
}
} else {
echo $pdo->log->error("Unable to find {$field} '{$identifier}' in the users. Cannot change password.");
}
示例13: executeChangePass
/**
* Change password, XHR request
*
* POST /user/change_pass
* @return string
*/
public function executeChangePass()
{
$current = $this->post('current_pass');
$new = $this->post('new_pass');
$confirm = $this->post('confirm_pass');
$user = $this->getSessionUser();
$error = [];
if ($new != $confirm) {
$error['confirm'] = t('Confirm password not match!');
}
if ($user->getPassword() != \Users::hashPassword($current, $user->getPassword())) {
$error['current_pass'] = t('Current password not valid!');
}
$ajax = new \AjaxResponse();
$ajax->type = \AjaxResponse::ERROR;
if (!empty($error)) {
$ajax->message = t('Lỗi');
$ajax->error = $error;
return $this->renderText($ajax->toString());
}
//everything ok
$user->setPassword(\Users::hashPassword($new, $user->getPassword()));
//reset password but keep salt
if ($user->save(false)) {
//quick save
$ajax->type = \AjaxResponse::SUCCESS;
$ajax->message = t('Password was change. Plz login again with new password!');
CMSBackendAuth::getInstance()->logout();
} else {
$ajax->message = t('Something went wrong, plz try again. Thanks!');
}
return $this->renderText($ajax->toString());
}
示例14: setPassword
function setPassword($password)
{
$digest = Users::hashPassword($this->username, $password);
$this->password = $digest;
return $this;
}