【问题标题】:Yii2 basic template to make separate session for frontend & backendYii2 基本模板为前端和后端创建单独的会话
【发布时间】:2017-03-21 18:38:45
【问题描述】:

我正在使用 Yii2 基本模板来创建管理面板。 对于管理员登录,我使用了 useridentity 类和 yii 的默认用户模型。

现在我必须为前端创建登录。我应该怎么做才能单独登录,以便我可以在前端和后端在同一个浏览器中登录?

在基本模板中,我面临相同身份类别和模型的问题。

我必须为管理员和前端用户使用相同的数据库用户表。

请建议管理此问题的最佳方法。

【问题讨论】:

    标签: php session yii2 yii2-basic-app


    【解决方案1】:

    这实际上是正确的方法,解决这个“问题”是为您的前端和后端声明不同的会话。

    Yii2 高级模板已包含此功能,我建议您不要再次开始发明轮子,只需将您的项目移至高级模板即可。

    当然,您可以为管理员创建一个新模型和一个新表。但是这个新类仍然应该实现 IdentityInterface

    你的 AdminUserModel 看起来像这样:

    namespace app\models;
    
    use yii\db\ActiveRecord;
    use yii\web\IdentityInterface
    
    class AdminUser extends ActiveRecord implements IdentityInterface
    {
    
        /** Dont froget all the  related stuff like behaviours, properties etc **/
    
        /**
         * @inheritdoc
        */
        public static function tableName()
        {
            return 'admin_user';
        }
    
        public static function findIdentity($id)
        {
            return static::findOne($id);
        }
    
        public static function findIdentityByAccessToken($token, $type = null)
        {
            return static::findOne(['access_token' => $token]);
        }
    
        public function getId()
        {
            return $this->id;
        }
    
        public function getAuthKey()
        {
            return $this->authKey;
        }
    
        public function validateAuthKey($authKey)
        {
            return $this->authKey === $authKey;
        }
    }
    

    如果你决定走这条路,我什至建议你在 AdminUser 模型中扩展常规 User 模型,因为很多属性和功能都是相同的。

    【讨论】:

      【解决方案2】:

      我建议使用 module 创建一个管理面板。

      【讨论】:

        猜你喜欢
        • 2013-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-30
        • 2017-09-11
        • 1970-01-01
        相关资源
        最近更新 更多