我在公共目录中写了一些php函数,因为我必须使用外部库。 然后,我无法从我使用下面的PHP脚本
测试的控制器中检索任何会话数据和身份验证数据session_start();
var_dump($_SESSION['user']);
我已经从AdminMiddlware获得了初始会话数据 在Resource->视图目录中使用它非常棒,但不能公开。
namespace App\Http\Middleware;
use App\User;
use Closure;
use Illuminate\Support\Facades\Auth;
class AdminMiddleware
{
/**
* Handle an incoming request. User must be logged in to do admin check
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$user = User::find(\Auth::user()->id);
if ((int) $user->is_admin == (int) config('auth.guards.is_admin')) {
$collection = collect(Auth::user());
$thisdata = $collection->toArray();
$request->session()->put('user', $thisdata);
return $next($request);
}
return redirect()->guest('/');
}}
答案 0 :(得分:2)
好的,我能看到让Laravel与之合作的最简单方法是:
(如果您还没有这样做)复制
function newO(){
return {
"key": "value"
};
}
// call a
var x = new newO();
// call b
var x = new newO;
// call c
var x = newO();
到
public/gallery/scripts/filemanager.config.default.json
然后将public/gallery/scripts/filemanager.config.json
(第25行)设置为"fileConnector"
,例如
"/authenticate-filemanager",
这将告诉您的"fileConnector": "/authenticate-filemanager",
应用程序通过路由Filemanager
加载。
接下来,转到/authenticate-filemanager
,在底部将public/gallery/connectors/php/application/FmApplication.php
更改为if(!auth())
,这将告诉应用程序在Laravel中使用内置身份验证。
然后你需要设置实际路线(这基本上是没有if(!auth()->check())
功能的filemanager.php
的内容):
auth()
因为Route::match(['GET', 'POST'], 'authenticate-filemanager', function () {
require_once(public_path('gallery/connectors/php/application/Fm.php'));
require_once(public_path('gallery/connectors/php/application/FmHelper.php'));
$config = [];
$fm = Fm::app()->getInstance($config);
$fm->handleRequest();
});
和GET
调用都是针对相同的端点POST
进行的。确保不要将此路由放在auth中间件后面。
最后,您只需转到match
并将app/Http/Middleware/VerifyCsrfToken.php
添加到'authenticate-filemanager'
数组,以禁用该路由的csrf。
希望这有帮助!
答案 1 :(得分:1)
RichFilemanger版本的更新。 2.7.6 和 Laravel 5.6
我在管理面板的HTML文本编辑器中使用RichFilemanager。因此,请检查管理员用户是否已登录。
在public /../ RichFilemanager / config / filemanager.config.json中
"connectorUrl": "/admin/authenticate-filemanager",
在route / web.php中
Route::match(['GET', 'POST'], '/admin/authenticate-filemanager', function () {
//Here check is admin or user is authenticated. Can use: auth()->check()
$isAuth = \App\Libraries\Admin\AdminBLL::isAuth();
if(!$isAuth){
return 'Not authenticated';
}
return require_once(public_path('assets/plugins/RichFilemanager/connectors/php/filemanager.php'));
});
就像罗斯威尔逊以前写的那样:最后,您只需要转到app/Http/Middleware/VerifyCsrfToken.php
并将'admin/authenticate-filemanager'
添加到$ except数组即可禁用该路由的csrf。
最后一个-设置文件在public/../RichFilemanager/connectors/php/filemanager.php
中的文件夹位置
$local->setRoot('userfiles/filemanager', true, true);