我为前端部分和后端部分设置了不同的identityCookie名称和会话名称。
我的问题是如何识别前端部分中的活动后端登录?对于我的部分,我有两个单独的登录表单。
我使用了github的abhi1693 / yii2-user和advnaced yii2模板。
感谢。
答案 0 :(得分:0)
你应该自己编写代码。如果前端&后端位于一个域上,您可以将用户ID存储在cookie中。前端将知道如果存在具有特定名称的cookie,则该用户具有活动的后端登录。
Yii2 have useful manual about cookie。在后端登录后尝试写入。当然你应该protect,并在阅读之前验证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);
在前端你可以查看这个cookie:
$isBackendLoginHash = \Yii::$app->request->cookies->getValue('isBackendLogin');
$isBackendLogin = \Yii::$app->security->validateData($isBackendLoginHash, 'salt');