我为前端部分和后端部分设置了不同的identityCookie名称和会话名称
我的问题是如何识别活跃后端登录在前端部分?我有两个单独的登录表单,每个部分。
我使用了github中的abhi1693/yii2-user和高级yii2模板。
谢谢。
你应该自己写代码。如果前端&后端位于一个域中,您可以在cookie中存储用户id。如果有特定名称的cookie存在,前端将知道用户有活动的后端登录。
我有关于cookie的有用手册。尝试后端登录后写入。当然你应该在读取之前保护和验证cookie值,因为客户端可以替换它。
$cookie = new Cookie([
'name' => 'isBackendLogin',
'value' => 'Yii::$app->security->hashData(Yii::$app->user->id, 'salt'),
'expire' => time() + 86400 * 365,
]);
'Yii::$app->getResponse()->getCookies()->add($cookie);
在Frontend中你可以检查这个cookie:
$isBackendLoginHash = 'Yii::$app->request->cookies->getValue('isBackendLogin');
$isBackendLogin = 'Yii::$app->security->validateData($isBackendLoginHash, 'salt');