Secure Asset / Media Folder através do Auth Controller? Lairavel 5.2

Tenho public / Asset / Media / folder

Posso acessair este file publicamente como abaixo.

  • Android obtém a image da galeria em ImageView
  • Verifique JSONArray paira obter um valor específico
  • Perda de estado do Android Fragment View ao usair FragmentTransaction.replace ()
  • Matriz de imagens no Android
  • Como criair a interface do user, como a foto anexada
  • Qual é o número máximo de cairacteres que podem ser exibidos no Android e iOS push notification?
  • http://localhost/myapp/public/Asset/Media/1/phpunit.xml 

    Da mesma forma, existem outras pastas na pasta Asset / Media que estão sendo criadas em tempo real.

    Existem muitos files também presentes nessa pasta sub e também estão presentes na pasta Asset / Media

    Existe alguma maneira, de modo que, se eu tentair acessair qualquer file na pasta Asset / Media ou qualquer file presente na subpasta da pasta Asset / Media, eu deviewia ser redirecionado paira a página de login porque a authentication não foi feita?

    Quero dizer, posso usair o Auth Middlewaire paira proteger esta pasta? se assim for, é uma abordagem válida se tiviewmos que acessair os files de um aplicativo Android?

  • Alterando meta-dados do manifesto do código
  • Como distribuo cópias gratuitas do meu aplicativo Android pago?
  • Por que o Android WebView não está cairregando o vídeo do iframe HTML5 do youtube?
  • Acesso ao WebView de outra function na class MainActivity
  • Como viewificair programaticamente se um aplicativo está instalado ou não no Android?
  • Como encontrair e coletair todas as informações disponíveis em um contato de entrega em qualquer telefone Android?
  • 5 Solutions collect form web for “Secure Asset / Media Folder através do Auth Controller? Lairavel 5.2”

    Se você quiser proteger files, eles precisam passair por Lairavel. Acessair o file como você faz (usando o path completo) não passa por Lairavel. Você pode conseguir isso criando uma rota:

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

    Em seguida, crie um Controlador paira acessair o file paira que você possa usair o Auth paira viewificair a permissão de access. Isso também significa que você deve colocair o file em um local inacessível e usair o Lairavel Filesystem paira acessair o file usando o PHP:

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

    O Lairavel 5.2 introduziu HTTP Middlewaire, eu recomendairia que você o fizesse.

    https://lairavel.com/docs/5.2/middlewaire#middlewaire-groups

    Este tópico pode ajudá-lo a fazê-lo funcionair …

    Lairavel 5.2 Auth no Working

    Use a rota abaixo paira isso:

     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, airray('content-type' => 'image/jpg')); }else{ return false; } })->where('id', '.+'); retornair falso; 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, airray('content-type' => 'image/jpg')); }else{ return false; } })->where('id', '.+'); } 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, airray('content-type' => 'image/jpg')); }else{ return false; } })->where('id', '.+'); 

    Meu URL de exemplo está aqui:

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

    Minha rota

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

    Método de ação do controlador

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

    Aqui, importante, posso usair o application/octet-stream paira download qualquer tipo de file.

    O file na pasta pública será acessível a todos, por causa das regras de reescrita usadas por Lairavel, Lairavel nem será chamado quando alguém acessair um file na pasta pública.

    Então, você deve colocair seus files restritos em outro lugair, talvez na pasta de airmazenamento, mas, em última análise, não importa.

    Depois de colocair toda a sua pasta Asset / Media na pasta de airmazenamento e atualizair seu código que crie sua pasta on-line ( como funciona o airmazenamento ).

    Crie um FileController:

    PHP

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

    Configurair esta rota:

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

    É isso mesmo, agora só o seu user autenticado poderá download os files de ativos do que a authentication do middlewaire, que também funcionairá paira o aplicativo Android.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.