Добавил генерацию jwt токена для формы подтверждения регистрации

This commit is contained in:
ErickSkrauch 2016-02-27 01:37:55 +03:00
parent 5be5a732bd
commit d1cdb847e0
4 changed files with 10 additions and 9 deletions

View File

@ -52,20 +52,16 @@ class SignupController extends Controller {
public function actionConfirm() {
$model = new ConfirmEmailForm();
$model->load(Yii::$app->request->post());
if (!$model->confirm()) {
if (!($jwt = $model->confirm())) {
return [
'success' => false,
'errors' => $this->normalizeModelErrors($model->getErrors()),
];
}
// TODO: не уверен, что логин должен быть здесь + нужно разобраться с параметрами установки куки авторизации и сессии
$activationCode = $model->getActivationCodeModel();
$account = $activationCode->account;
Yii::$app->user->login($account);
return [
'success' => true,
'jwt' => $jwt,
];
}

View File

@ -35,10 +35,14 @@ class ConfirmEmailForm extends BaseKeyConfirmationForm {
$transaction->commit();
} catch (ErrorException $e) {
$transaction->rollBack();
throw $e;
if (YII_DEBUG) {
throw $e;
} else {
return false;
}
}
return true;
return $account->getJWT();
}
}

View File

@ -36,6 +36,7 @@ class EmailConfirmationCest {
'success' => true,
]);
$I->cantSeeResponseJsonMatchesJsonPath('$.errors');
$I->canSeeResponseJsonMatchesJsonPath('$.jwt');
}
}

View File

@ -34,7 +34,7 @@ class ConfirmEmailFormTest extends DbTestCase {
$fixture = $this->emailActivations[0];
$model = $this->createModel($fixture['key']);
$this->specify('expect true result', function() use ($model, $fixture) {
expect('model return successful result', $model->confirm())->true();
expect('model return successful result', $model->confirm())->notEquals(false);
expect('email activation key is not exist', EmailActivation::find()->andWhere(['key' => $fixture['key']])->exists())->false();
/** @var Account $user */
$user = Account::findOne($fixture['account_id']);