Empfehlungen: Erweiterte Suche

Klartext-Passwort mit Auth

Ausgabedaten formatieren und darstellen

Klartext-Passwort mit Auth

Beitragvon Flex86 » Do 21. Jul 2011, 12:45

Hallo,

ich habe ine Problem und zwar das nur der gehashte werd für ein Passwort in meinem Edit-View angezeigt wird und dementsprechend auch nur gehasht weider gespeichert wird, d.h. es wird abermals durch die Auth-Komponente gehasht. Kann man das Passwort irgendwie vor dem anzeigen der View wieder hashen um es in Klartext anzeigen zu lassen? Vermutlich in beforeFilter oder direkt in der edit() ? Bitte um Hilfe!
Flex86
 
Beiträge: 3
Registriert: Do 21. Jul 2011, 12:36

Re: Klartext-Passwort mit Auth

Beitragvon euromark » Do 21. Jul 2011, 13:23

wurde bereits mehrfach in verschiedenen quellen angesprochen
z.b.
http://www.honk.com.au/index.php/2009/10/24/user-password-is-double-hashed-on-edit-when-using-the-cakephp-auth-component/

wenn ich mir das so anguck, könnte man da wunderbar ne praktische kleine behavior geschichte draus machen
und dann nur an der entsprechenden stelle
Code: Alles auswählen
$this->User->actsAs('ChangePassword');

*schwärm*

das wärs, und schon könnte man in dem view sein passwort ändern inkl. validation und co
euromark
 
Beiträge: 644
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Klartext-Passwort mit Auth

Beitragvon euromark » Fr 22. Jul 2011, 01:05

tja^^ nachdem ich dann entschieden habe, dass das eigentlich echt ne gute idee von mir war :)

bitte schön:
https://github.com/dereuromark/tools/blob/master/models/behaviors/change_password.php

controller:
Code: Alles auswählen
    function change_pw() {
        $this->User->Behaviors->attach('Tools.ChangePassword');
        if (!empty($this->data)) {
            $uid = $this->Session->read('Auth.User.id');
            $this->data['User']['id'] = $uid;
            if ($this->User->save($this->data, true, array('pwd', 'pwd_repeat'))) {
                $this->Common->flashMessage(__('new pw saved - next time you login you will need your new password', true), 'success');
                $this->redirect(array('controller' => 'overview', 'action' => 'index'));
            } else {
                $this->Common->flashMessage(__('formContainsErrors', true), 'error');
            }

            # pw should not be passed to the view again for security reasons
            unset($this->data['User']['pwd']);
            unset($this->data['User']['pwd_repeat']);
        }
    }


view:
Code: Alles auswählen
<fieldset>
        <legend><?php __('Change Password');?></legend>
    <?php
        //echo $this->Form->input('pwd_current',array('type'=>'password','autocomplete'=>'off'));
        echo $this->Form->input('pwd',array('type'=>'password', 'value'=>'', 'autocomplete'=>'off'));
        echo $this->Form->input('pwd_repeat',array('type'=>'password', 'value'=>'', 'autocomplete'=>'off'));
    ?>
    </fieldset>


enjoy :)
euromark
 
Beiträge: 644
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows


Zurück zu Views

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast