Exemplo n.º 1
0
 /**
  * @inheritdoc
  */
 public function run()
 {
     if ($this->checkAccess) {
         call_user_func($this->checkAccess, $this->id);
     }
     /** @var $request \yii\web\Request */
     $request = Yii::$app->getRequest();
     $rememberValue = $request->getBodyParam($this->rememberField);
     $verifyIP = $request->getBodyParam($this->verifyIpField) == $this->verifyIpYesValue;
     switch ($rememberValue) {
         case $this->rememberYesValue:
             $remember = true;
             $seconds = $this->expireSecondsRemember;
             break;
         case $this->rememberNoValue:
             $remember = false;
             $seconds = $this->expireSecondsNotRemember;
             break;
         default:
             $remember = false;
             $seconds = UserToken::EXPIRE_DEFAULT_SECONDS;
     }
     /* @var $model \common\models\UserToken */
     $model = UserToken::createForUser(Yii::$app->user->identity, $seconds, $remember, $verifyIP);
     if ($model) {
         $response = Yii::$app->getResponse();
         $response->setStatusCode(201);
         $id = implode(',', array_values($model->getPrimaryKey(true)));
         $response->getHeaders()->set('Location', Url::toRoute([$this->viewAction, 'id' => $id], true));
     } elseif (!$model->hasErrors()) {
         throw new ServerErrorHttpException('Failed to create user token.');
     }
     return UserToken::findOne($model->primaryKey);
 }