Yii 2.0 登录问题 [ 2.0 版本 ]
各位大佬,我现在有一个场景:
我在一个 app 里面有多个系统。比如现在有一个商城系统,他有单独的用户系统,可以单独使用,Yii::$app->user
去获取用户信息。现在我想改下。在新建一个用户表,去实现 【用我 app 的用户不一定是商城的用户】的功能,在 app 用户使用商城有关的功能时,如果商城用户表里面没有该用户我就新建一个。
现在我的问题是:怎么在不大动商城系统的情况下实现?有什么有好的思路吗?
我试过的方案:
- 新建一个登录组件【gos】,我获取我新登录信息,用
Yii::$app->gos
去获取。在使用商城功能是我模拟商城原先的登录,设想商城还是用原先的【user】组件,该怎样就怎样。结果:不行。gos 可以正常使用,但是 user 没数据 - 把商城的【user】组件改为普通组件去使用。结果不行,user 是 yii 的预组件
最佳答案
-
两种同时用,防止互串,idParam,authTimeoutParam,absoluteAuthTimeoutParam,returnUrlParam 这几个都要配置下
`
'user' => ['identityClass' => 'common\models\Member', 'enableAutoLogin' => true, 'loginUrl' => '/member/public/login', 'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true], 'on afterLogin' => function($event) { $user = $event->identity; //这里的就是User Model的实例 $user->last_login_at = time(); $user->login_ip = \Yii::$app->request->getUserIP(); $user->login_num += 1; $user->save(); }, ], 'saler' => [ 'class' => 'yii\web\User', 'identityClass' => 'common\models\StoreUser', 'enableAutoLogin' => true, 'loginUrl' => '/saler/public/login', 'idParam' => '__storeuser_id', 'authTimeoutParam' => '__storeuser_expire', 'absoluteAuthTimeoutParam' => '__storeuser_absoluteExpire', 'returnUrlParam' => '__storeuser_returnUrl', 'identityCookie' => ['name' => '_identity-storeadmin', 'httpOnly' => true], 'on afterLogin' => function($event) { $user = $event->identity; //这里的就是User Model的实例 $user->last_login_at = time(); $user->last_login_ip = \Yii::$app->request->getUserIP(); $user->login_num += 1; $user->save(); },`
其他 4 个回答
-
return19931112 回答于 2019-04-24 16:32 举报
原谅我没怎么看懂
sinxcosy 阿德拉尔
注册时间:2019-01-07
最后登录:2023-02-23
在线时长:7小时45分
最后登录:2023-02-23
在线时长:7小时45分
- 粉丝0
- 金钱30
- 威望0
- 积分100