Php 不确定我是否';我在Yii中正确配置会话以进行单点登录
我有一个域,我有两个不同的Yii应用程序,它们使用相同的数据库。两个应用程序都有自己的登录页面,但我想这样做,如果他们从一个应用程序登录,他们可以有权访问另一个应用程序,反之亦然 我之前问过一个类似的问题,即为了执行这个,应该采取什么步骤,现在我有了一个方法,我想知道我是否正确配置了main.php。上次我这样做时,登录按钮停止工作。我遵循这个指南: 在main.php中,我添加了以下代码:Php 不确定我是否';我在Yii中正确配置会话以进行单点登录,php,yii,single-sign-on,Php,Yii,Single Sign On,我有一个域,我有两个不同的Yii应用程序,它们使用相同的数据库。两个应用程序都有自己的登录页面,但我想这样做,如果他们从一个应用程序登录,他们可以有权访问另一个应用程序,反之亦然 我之前问过一个类似的问题,即为了执行这个,应该采取什么步骤,现在我有了一个方法,我想知道我是否正确配置了main.php。上次我这样做时,登录按钮停止工作。我遵循这个指南: 在main.php中,我添加了以下代码: 'components' => array( 'user' => array( /
'components' => array(
'user' => array(
// enable cookie-based authentication
'allowAutoLogin' => true,
),
// session configuration
'session' => array(
'savePath' => '/sessCook', //I created this empty folder and placed it
//outside of the protected folder. Currently the chmod is 775
'cookieMode' => 'allow',
'cookieParams' => array(
'path' => '/sessCook', //I'm not sure if this is correct
'domain' => 'http://www.mydomain.com/subdomain', //am I only supposed to place the //parent domain?
'httpOnly' => true,
),
),
然后在阅读指南后,它说在配置文件中添加以下代码:
array(
'id' => 'http://www.mydomain.com/subdomainOfThisApplication',
问题是,我不确定他们是否打算把它放在main.php中
最后,为了说明如何放置此代码并形成脚本的外观,我将其放置在WebUser.php中的组件下:
class MyWebUser extends CWebUser
{
public $identityCookie = array(
'path' => '/', //should the path be the /sessCook?
'domain' => 'http://www.mydomain.com',
);
保存所有内容后,我运行登录页面,输入用户名和密码,单击提交后,什么也没发生。输入的内容是否正确?保存路径必须是服务器上存在的路径,并且两个应用程序都可以访问该路径。例如:
'savePath' => '/home/user/public_html/session_data'
请确保对此进行保护,或将其放置在公共区域之外。还要确保此目录对于两个应用程序都是可写的
您最可能希望更改为/
的路径,会话cookie将在整个域上可用
'path' => '/',
必须在不使用http://
的情况下输入域。以点开始,使会话在所有域上可用:
'domain' => '.mydomain.com'
在
MyCWebUser
类中,设置必须与配置文件中的设置相同。数组如何('id'=>'.domain.com',?我应该把它放在哪里?对于savePath,您认为我只是在配置文件的根级别创建了一个空目录,将所有会话放在其中,这样做正确吗?请参阅此主题:您提到了服务器上应该存在该存储路径。我在应用程序外部创建了一个新文件夹。例如:ebs->www->myyiapp I创建新文件夹后,我将其放置在ebs->www中,我将如何设置通往那里的路径?如果我只放置ebs/www/session_data:)这一切完成后,不会发生任何事情。我不知道我做错了什么!