Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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 如何将CKFinder与Laravel集成?_Php_Session_Laravel_Ckeditor_Ckfinder - Fatal编程技术网

Php 如何将CKFinder与Laravel集成?

Php 如何将CKFinder与Laravel集成?,php,session,laravel,ckeditor,ckfinder,Php,Session,Laravel,Ckeditor,Ckfinder,我正在尝试将CKFinder与Laravel集成在一起,我大约有95%的支持率。我可以让一切正常工作,除了CheckAuthentication功能-我必须让它返回true而不管上传是否正常工作 我尝试在config.php文件中引导Laravel,然后检查用户是否登录,如下所示: public/packages/ckfinder/config.php 根据我的经验,从4.1.28开始,Application::boot()不再初始化敏感会话数据 所以,如果您要集成第三方库,它需要通过会话进行外

我正在尝试将CKFinder与Laravel集成在一起,我大约有95%的支持率。我可以让一切正常工作,除了
CheckAuthentication
功能-我必须让它
返回true
而不管上传是否正常工作

我尝试在config.php文件中引导Laravel,然后检查用户是否登录,如下所示:

public/packages/ckfinder/config.php


根据我的经验,从4.1.28开始,Application::boot()不再初始化敏感会话数据

所以,如果您要集成第三方库,它需要通过会话进行外部身份验证检查,那么简单的检查Auth::check()将不起作用。但是,我们仍然可以使用旧的$\u会话变量

例如,这个不起作用:

require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
$app->boot();
return Auth::check();
Auth::check()工作的会话变量仅在$app->run()序列中初始化。但在这种情况下,路由将发生,可能您将得到无法识别的页面。。。除非您使用专用的Laravel软件包

下面这个仍然有效:

// Somewhere in your app - e.g. in filters.php, "auth"/"guest" filters declaration
if (session_id() == '') {
    @session_start();
    /* or Session:start(); */
}
$_SESSION['isLoggedIn'] = Auth::check() ? true : false;
那么在您的情况下,函数将很简单,如下所示:

function CheckAuthentication()
{
    if (session_id() == '') {
        @session_start();
    }
    return isset( $_SESSION['isLoggedIn'] ) && $_SESSION['isLoggedIn'] == true;
}
注意:如果您可以使用Ajax调用进行授权检查,您仍然可以创建一个自定义API,其中记录对用户的JSON请求(作为示例),以查看用户是否经过身份验证


回答你的第二个问题——它不像听起来那么简单。默认情况下,Laravel使用文件系统进行会话存储。虽然会话数据仍然可以访问,但它是加密的-除非您编写自己的会话管理器,否则您无法轻松从中提取任何内容。

我尝试将simogeo的Filemanager和KCFinder集成到Laravel项目中,我发现了同样的问题

使用此代码,可以共享Laravel的会话并检查来自外部项目的身份验证:


也许这篇文章可以帮助你()检查官方信息-希望这会使集成变得更容易。laravel5.3有可能吗?
function CheckAuthentication()
{
    if (session_id() == '') {
        @session_start();
    }
    return isset( $_SESSION['isLoggedIn'] ) && $_SESSION['isLoggedIn'] == true;
}