Yii2高级应用程序,用于前端和后端的不同会话





我正在尝试建立一个Yii2高级项目。为此,我使用了kartik-v的高级应用程序模板。它工作得很好,但(正如他刚才提到的)如果你登录到前端,然后转到后端,你也会登录。因此,我想将前端和后端登录(不同的会话)分开。我试图配置身份cookie,但没有成功
在评论中,我发现:"尽管如此,当前端或后端登录并打开另一个时,它会自动显示为已登录,因为会话cookie是相同的,PHPSESSID。"因此,我在前端和后端的配置中更改了会话的名称和savePath。有了这个应该行得通,但不行
每次转到我的页面时,我都会收到一个500内部服务器错误。如果我尝试登录,它就是不起作用,它会重定向我,但不会让我登录。我发现如果我不设置savePath,我不会得到错误,但仍然什么都没发生。如果选中"记住我"选项,我会收到错误消息,但登录有效。。所以我现在不知道该怎么办。我的主要配置文件:


后端:

'components' => [
'session' => [
'name' => 'backend_sessid',
'savePath' => __DIR__ . '/../tmp',
],
'user' => [
'identityClass' => 'commonmodelsUser',
'enableAutoLogin' => true,
'identityCookie' => [
'name' => '_backendUser',
'path' => '/projectname/backend/web'
]
],

前端:

'components' => [
'session' => [
'name' => 'frontend_sessid',
'savePath' => __DIR__ . '/../tmp',
],
'user' => [
'identityClass' => 'commonmodelsUser',
'enableAutoLogin' => true,
'identityCookie' => [
'name' => '_frontendUser',
'path' => '/projectname'
]
],

一种方法是使用此处描述的基于角色的访问控制:http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

通过这种方式,您可以为前端用户和后端用户设置不同的角色。如果具有不同权限的用户试图访问错误的站点区域,您可以将其注销并重定向到登录页面。

最新更新