Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不确定我是否';我在Yii中正确配置会话以进行单点登录_Php_Yii_Single Sign On - Fatal编程技术网

Php 不确定我是否';我在Yii中正确配置会话以进行单点登录

Php 不确定我是否';我在Yii中正确配置会话以进行单点登录,php,yii,single-sign-on,Php,Yii,Single Sign On,我有一个域,我有两个不同的Yii应用程序,它们使用相同的数据库。两个应用程序都有自己的登录页面,但我想这样做,如果他们从一个应用程序登录,他们可以有权访问另一个应用程序,反之亦然 我之前问过一个类似的问题,即为了执行这个,应该采取什么步骤,现在我有了一个方法,我想知道我是否正确配置了main.php。上次我这样做时,登录按钮停止工作。我遵循这个指南: 在main.php中,我添加了以下代码: 'components' => array( 'user' => array( /

我有一个域,我有两个不同的Yii应用程序,它们使用相同的数据库。两个应用程序都有自己的登录页面,但我想这样做,如果他们从一个应用程序登录,他们可以有权访问另一个应用程序,反之亦然

我之前问过一个类似的问题,即为了执行这个,应该采取什么步骤,现在我有了一个方法,我想知道我是否正确配置了main.php。上次我这样做时,登录按钮停止工作。我遵循这个指南:

在main.php中,我添加了以下代码:

'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:)这一切完成后,不会发生任何事情。我不知道我做错了什么!