亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Yii2 Advanced 中使用多用戶身份類時登錄后面臨身份對象問題

在 Yii2 Advanced 中使用多用戶身份類時登錄后面臨身份對象問題

PHP
翻閱古今 2023-06-24 18:15:48
我在 config/main.php 組件下為 2 個不同的登錄設置/創建了 2 個用戶身份類:'user' => [            'class'=>'yii\web\User',            'identityClass' => 'frontend\models\CustomerUser',            'enableAutoLogin' => false,            'authTimeout' => 60*30,            'loginUrl' => ['customer/login'],            'identityCookie' => [                'name' => '_panelCustomer',                'httpOnly' => true,            ],        ],        'franchise'=>[            'class'=>'yii\web\Franchise',            'identityClass' => 'frontend\models\FranchiseUser',            'enableAutoLogin' => false,            'authTimeout' => 60*30,            'loginUrl' => ['franchise/login'],            'identityCookie' => [                'name' => '_panelFranchise',                'httpOnly' => true,            ],        ],當我使用特許經營權登錄時,登錄后如果我檢查Yii::$app->user->identity它會為我提供數據庫中第一條記錄的詳細信息(用戶登錄反之亦然)。Yii::$app->user->identity當我以特許經營身份登錄時,我想獲取 null 。
查看完整描述

2 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

當我們在配置中添加多個身份時,請更改其idParam參數。


'user' => [

            'class'=>'yii\web\User',

            'identityClass' => 'frontend\models\CustomerUser',

            'enableAutoLogin' => false,

            'authTimeout' => 60*30,

            'loginUrl' => ['customer/login'],

            'idParam' => '__cid',

            'identityCookie' => [

                'name' => '_panelCustomer',

                'httpOnly' => true,

            ],

        ],

        'franchise' => [

            'class'=>'yii\web\User',

            'identityClass' => 'frontend\models\FranchiseUser',

            'enableAutoLogin' => false,

            'authTimeout' => 60*30,

            'loginUrl' => ['franchise/login'],

            'idParam' => '__fid',

            'identityCookie' => [

                'name' => '_panelFranchise',

                'httpOnly' => true,

            ],

        ],


查看完整回答
反對 回復 2023-06-24
?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

您選擇用戶的第一個組件,檢查以下內容:


$user = Yii::$app->get('franchise');

$user->identity

但是,為此目的的最佳解決方案是使用高級模板,并為用戶提供單獨的配置。


https://github.com/yiisoft/yii2-app-advanced

或者您可以在運行時使用模塊并更改 Module.php 內部的配置:


public function init() {

    parent::init();

    Yii::$app->setComponents([

        'user' => [

            'class'=>'yii\web\Franchise',

            'identityClass' => 'frontend\models\FranchiseUser',

            'enableAutoLogin' => false,

            'authTimeout' => 60*30,

            'loginUrl' => ['franchise/login'],

            'identityCookie' => [

                'name' => '_panelFranchise',

                'httpOnly' => true,

            ],

        ],

    ]);

}

對另一個用戶模塊重復此操作。


查看完整回答
反對 回復 2023-06-24
  • 2 回答
  • 0 關注
  • 212 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號