Проблема аутентификации CKFinder с laravel 5

Я использую Laravel 5. У меня есть папка, которая ссылается на ckfinder в каталоге / public / plugins / ckfinder.

Мне нужно использовать функцию CheckAuthentication в config.php, но значение сеанса и класс аутентификации равны нулю.

я пытался

function CheckAuthentication(){
return Auth::check();
}

или же

 //Ckfinder Config.php
function CheckAuthentication(){
if($_SESSION['ckfinder_enabled'] == 'enabled') {
return true;
} else {
return false;
}
}

 

        //App\Http\Middleware\Authenticate.php
public function handle($request, Closure $next)
{
if ($this->auth->guest()){
if ($request->ajax()){
return response('Unauthorized.', 401);
}else{
return redirect()->guest('auth/login');
}
}

if($this->auth->check()) {
$_SESSION['ckfinder_enabled'] = 'enabled';
return $next($request);
}
}

2

Решение

У меня тоже была такая же проблема. Ваш код полезен для laravel 4.2, но для laravel 5 вам нужно сделать это в config.php папки ckfinder:

require _DIR_.'/../../../bootstrap/autoload.php';
$app = require_once _DIR_.'/../../../bootstrap/app.php';

$app->make('Illuminate\Contracts\Http\Kernel')
->handle(Illuminate\Http\Request::capture());

Тогда вы готовы перейти с этим кодом:

function CheckAuthentication(){
return Auth::check();
}

Это должно работать.

4

Другие решения

Laravel 5.7+:

require  $_SERVER['DOCUMENT_ROOT'] . '/../vendor/autoload.php';
$app = require_once  $_SERVER['DOCUMENT_ROOT']. '/../bootstrap/app.php';
$response = $app->make('Illuminate\Contracts\Http\Kernel')->handle(Illuminate\Http\Request::capture());
$cookie = $_COOKIE[$app['config']['session']['cookie']] ?? false;
if ($cookie) {
$id = $app['encrypter']->decrypt($cookie, false);
$session = $app['session']->driver();
$session->setId($id);
$session->start();
}

if (!$app['auth']->check()){
header('HTTP/1.0 403 Forbidden'); exit();
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector