如何使用 Yii::app()->User 获取密码


how to get password using Yii::app()->User

我想知道为什么当我使用var_dump(Yii::app()->User->id);

我得到身份证号码,

当我使用var_dump(Yii::app()->User->password);

我收到以下错误:

CExceptionCAssetManager.basePath "/opt/local/www/projects/theuniversalgroup/app/webim/operator/assets" 无效。请确保该目录存在并且可由 Web 服务器进程写入。

另外,我如何获取用户的密码,以便我可以使用它登录Web应用程序。

如果要使用界面获取用户密码

var_dump(Yii::app()->user->password);

使用此方法,则需要添加基本组件文件UserIdentity.php

common/components/base/UserIdentity.php 

   public function getId() {
        return $this->id;
    }

    public function getName() {
        return $this->username;
    }


   public function getPassword() {
        return $this->password;
    }

此更改后,您将能够使用以下方法使用密码:

var_dump(Yii::app()->user->password);

如果我的理解是正确的,您正在尝试为您的应用程序创建登录名,在这种情况下,您可以使用这样的东西来登录您的应用程序,这就是我设置用户身份的方式.php ;

    class UserIdentity extends CUserIdentity
{
        private $_id;

    public function authenticate()
    {
            $username = strtolower($this->username);
            $user = User::model()->find('LOWER(user_name)=?',array($username));
            if($user===null)
                    $this->errorCode=self::ERROR_USERNAME_INVALID;
            else if(!$user->validatePassword($this->password))
                    $this->errorCode=self::ERROR_PASSWORD_INVALID;
            else{
                $this->_id = $user->id_user;
                $this->username=$user->user_name;
                $this->errorCode=self::ERROR_NONE;
                $user->updateLoginDate();
            }
            return $this->errorCode==self::ERROR_NONE;
    }
        public function getId()
        {
            return $this->_id;
        }
}

提交登录表单时,模型 LoginForm.php [protected/models/LoginForm.php] 实例化 UseIdentity.php [protected/components/SiteController.php] 类以检查用户和密码。如果登录信息正确,则 UseIdentity 类保存用户 ID。

请检查以下文件:

  • 登录.php [受保护/查看/登录.php]
  • LoginForm.php
  • [protected/models/LoginForm.php]
  • 站点控制器.php [protected/controllers/SiteController.php]
  • UseIdentity.php [protected/components/SiteController.php]

因此,当您尝试时,您会找到登录的用户 ID var_dump(Yii::app()->User->id); .我之前在你另一篇帖子中回答了如何获取密码。如果要将密码另存为用户 ID,则应在 UserIdentity 类中使用$this->setState();方法。 有许多方法可以获取或持有密码。