2017-05-10 7 views
0

Ich habe eine Anwendung mit yii2 entwickelt. Dann muss ich meinen User auf afterLogin verifizieren, um sein/ihr Passwort zu ändern, denn in meinem Benutzermodell ist standardmäßig '123456' definiert. Wenn immer noch 123456, möchte ich einen modalen Bootstrap machen, um meinem Benutzer mitzuteilen, das Passwort zu ändern.Yii2 - Passwort ändern Benutzer nachAnmeldung

Der Code wie dieser

public function actionCreate(){ 
    $model = new User(); 
    $model->scenario = 'create'; 

    if ($model->load(Yii::$app->request->post())) { 
     $model->status = $model->status == 1 ? 10 : 0; 
     $model->setPassword('123456'); 
     .... 
} 

Also, in config/web.php wie folgt aus:

'user' => [ 
     'identityClass' => 'app\models\User', 
     'on afterLogin' => ['app\events\AfterLoginEvent', 'handlePasswordForFirstTime'], 
     // 'enableAutoLogin' => true, 
    ], 

In Veranstaltungen, wie folgt aus:

namespace app\events; 
use Yii; 
use app\models\User; 

class AfterLoginEvent{ 
public static function handlePasswordForFirstTime($event){ 
    $user = new User(); 
    /*How to check if password still 123456*/ 
    } 
} 

Dank Alle .

Antwort

0

Nur Passwort bestätigen

if ($user || $user->validatePassword('123456')) { 
    // password is still '123456' 
} else { 
    // user has changed password 
} 
+0

ungültiger Parameter - ist yii \ base \ InvalidParamException Hash ungültig. –

+0

http://stackoverflow.com/questions/25910302/yii2-exception-in-validatepassword – Thu

Verwandte Themen