2016-10-30 16 views
0

私は外部ライブラリを使用する必要があるので、私は公共ディレクトリにいくつかのPHP関数を書いた。 は、それから私は>資源でビューディレクトリを、それを使用するため、私はそれは素晴らしい すでにAdminMiddlwareから最初のセッションのデータを持っているパブリックディレクトリからLarvel5.3のセッションデータまたは認証データを取得する方法は?

session_start(); 
var_dump($_SESSION['user']); 

私はPHPスクリプトの下でテストされているコントローラから任意のセッションデータと認証データを取得することはできません。一般に公開することはできません。

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('/'); 

}} 
+1

Laravelはネイティブセッションを使用しません。アプリケーションでこの「外部ライブラリ」を使用できないのはなぜですか? –

+0

私はすべてのメディアへのアップロードと制御のためのリッチファイルマネージャーを含んでいますが、私はLR53を拡張する必要があるので、リソースディレクトリではないパブリックフォルダ内にそれらのフォルダーを保持する必要があります。どのログインユーザがそれにアクセスできるかをチェックするセッション。 –

+0

この場合の解決方法はありませんか? –

答えて

1

[OK]を、私はこれはLaravelで動作するように取得するために見ることができる最も簡単な方法は次のとおりです。

(まだ行っていない場合)コピー

public/gallery/scripts/filemanager.config.default.json 

public/gallery/scripts/filemanager.config.json 

次に、"fileConnector"(行25)を"/authenticate-filemanager",と設定します。例:

"fileConnector": "/authenticate-filemanager", 

これにより、Filemanagerアプリケーションにルート/authenticate-filemanagerをロードするよう指示されます。

次に、if(!auth())~if(!auth()->check())に変更すると、アプリケーションにLaravelの組み込み認証を使用するように指示されます。両方GETPOST呼び出しが使用されている同じエンドポイントmatchに作られているので

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(); 

}); 

は、その後、あなたは(これは、本質的にauth()機能のないfilemanager.phpの内容です)実際のルートを設定する必要があります。 。このルートを認証ミドルウェアの背後に置かないようにしてください。

最後に、app/Http/Middleware/VerifyCsrfToken.phpに移動し、を$exceptアレイに追加して、ルートのcsrfをディセーブルにする必要があります。

希望すると便利です。

+0

on filebrowserBrowserURLは、そのルートを取得する必要がありますか? –

+0

@HengSopheak私はそれが何を意味するか分からない、私は決して 'CKEDITOR'を使用していない。私はちょうどあなたがあなたのユーザーを認証する方法を示すことができるだろう十分なコードを見ました。新しい質問をすることをお勧めします。また、上記の答えがあなたの問題を解決してくれた場合は、それを正しいと記入してください。 –

+0

CKeditorが悪いですか? –

関連する問題