Secure Asset / Media Folder über Auth Controller? Laravel 5.2

Ich habe öffentliche / Asset / Media / Ordner

Ich kann diese Datei öffentlich wie unten zugreifen.

  • Holen Sie sich Benutzer zu Hause, arbeiten und markierte Standorte wie Google Inbox tut
  • Android Studio Debugger hebt die falschen Linien hervor
  • Objekt aus Gson-String erstellen funktioniert nicht
  • Wie fügt man dem Kontakt neue Felder hinzu?
  • Android Studio Error: (8, 0) Plugin mit id 'android' nicht gefunden
  • USB-Schnittstelle in Android
  • http://localhost/myapp/public/Asset/Media/1/phpunit.xml 

    Ähnlich gibt es noch andere Ordner im Asset / Media-Ordner, die gerade erstellt werden.

    Es gibt viele Dateien, die auch in diesem Unterordner vorhanden sind und auch im Asset / Media Ordner vorhanden sind

    Gibt es irgendeine Art und Weise, so dass, wenn ich versuche, auf eine Datei im Asset / Media-Ordner oder irgendeine Datei zuzugreifen, die im Unterordner des Asset / Media-Ordners vorhanden ist, sollte ich zur Anmeldeseite umgeleitet werden, da die Authentifizierung nicht erfolgt ist?

    Ich meinte, kann ich Auth Middleware verwenden, um diesen Ordner zu sichern? Wenn ja, ist es ein gültiger Ansatz, wenn wir auf die Dateien von einer Android App zugreifen müssen?

  • So legen Sie ein großes Symbol für die GCM-Benachrichtigung fest
  • Wie man benutzerdefinierte URL-Schema in Android zu testen
  • Berechnen Sie die Bildgröße bei der Verwendung von setCompoundDrawables für EditText
  • Sizing eines Android-Mehrzeilen-TextView
  • Android-Anwendung Wi-Fi-Gerät - AP-Konnektivität
  • Kann ich arrayList von String im Realm-Objekt Android haben
  • 5 Solutions collect form web for “Secure Asset / Media Folder über Auth Controller? Laravel 5.2”

    Wenn Sie Dateien sichern wollen, müssen sie durch Laravel gehen. Der Zugriff auf die Datei, wie Sie es tun (mit dem vollständigen Pfad) geht nicht durch Laravel. Sie erreichen dies durch die Erstellung einer Route:

     Route::group(['middleware' => ['auth']], function () { Route::get('/secure/file/{file_name}', 'FileController@file'); } 

    Dann erstellen Sie einen Controller, um auf die Datei zuzugreifen, damit Sie Auth verwenden können, um nach der Zugriffsberechtigung zu suchen. Es bedeutet auch, dass du die Datei an einen unzugänglichen Ort stellen und das Laravel Filesystem nutzen sollst, um mit PHP auf die Datei zuzugreifen:

     class FileController extends Controller { public function file() { return Storage::get('path/to/phpunit.xml'); } } 

    Laravel 5.2 hat HTTP Middleware eingeführt, ich würde Ihnen raten, es zu tun.

    https://laravel.com/docs/5.2/middleware#middleware-groups

    Dieser Thread könnte dir helfen, es zu arbeiten …

    Laravel 5.2 Auth funktioniert nicht

    Benutze die unten stehende Route:

     Route::get('/myapp/public/Asset/Media/{id}', function ($id) { if (Auth::guest()){ return Redirect::guest('login'); }else{ $img="/myapp/public/Asset/Media/".$id; if(File::exists($img)) { return Response::make($img, 200, array('content-type' => 'image/jpg')); }else{ return false; } })->where('id', '.+'); 

    Meine Beispiel-URL ist hier:

    http://domainname.com/storage/Asset/Media/1/filename.txt

    Meine Route

     Route::get('/storage/Asset/Media/{ID}/{file}', array( 'as' => 'Files', 'uses' => 'User\Account\Media\MediaController@DownloadMedia', )); 

    Controller-Aktionsmethode

     public function DownloadMedia($ID) { $headers = array( 'Content-Type' => 'application/octet-stream', 'Content-Disposition' => 'attachment; filename=somefile.txt"' ); return response()->download(base_path("storage/Asset/Media/1/somefile.txt")); } 

    Hier wichtige Sache ist, kann ich application/octet-stream , um jeden Dateityp herunterzuladen.

    Datei im öffentlichen Ordner wird für jedermann zugänglich sein, um Rewrite-Regeln von Laravel verwendet werden, wird Laravel nicht einmal aufgerufen werden, wenn jemand auf eine Datei im öffentlichen Ordner zugreifen.

    Also musst du deine beschränkten Dateien woanders hinlegen, vielleicht im Speicherordner aber letztlich ist es egal.

    Nachdem Sie alle Ihre Asset / Media-Ordner in den Speicher-Ordner und aktualisieren Sie Ihren Code, der Ihren Ordner auf der Fliege ( Wie Speicher funktioniert ).

    Erstellen Sie einen FileController:

    PHP

     class FileController extends Controller { public function __construct() { $this->middleware('auth'); } public function downloadFile($filename) { return response()->download(storage_path($filename), null, [], null); } } 

    Konfiguriere diese Route:

     Route::get('file/{filename}', 'FileController@downloadFile')->where('filename', '^[^/]+$'); 

    Das ist es, jetzt nur Ihr authentifizierter Benutzer wäre in der Lage, Asset-Dateien als auf die Middleware-Auth herunterladen, die auch für Android-App zu arbeiten.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.