» »

laravel 5.1

laravel 5.1

wini ::

Živ. Če ima mogoče kdo kakšno izkušnjo z laravelom bi imel eno prošnjo.
In sicer, imam v public direktoriju pdf.php datoteko preko katere kličem pdf datoteke shranjene v storage-u.
To vse lepo prikazuje, ampak bi rad to zaščitil tako da če uporabnik ni prijavljen ne more odpret pdfjev.
npr če kot auth user pogledaš kodo, vidiš v source kodi link do tega pdf:
https://www.domena.si/pdf.php?file=id44...
torej če bi skopiral link do te dodateke in jo poslal nekomu, bi ta oseba lahko odprla iz urlja tale pdf.
Jst bi pa rad to zaklenil tako da bi rad dostopal do seje prijavljenega uporabnika, in naredil en if ki prikaže pdf oz napako da nisi prijavljen.

<?php
require '../bootstrap/autoload.php';
$app = require_once '../bootstrap/app.php';
//$app->boot();

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

//session_start();
        if ($_SESSION['IsAuthorized'] = true) {
$path = realpath(dirname(__FILE__) . '/../storage/' . $_GET['file'] );
//// ostala navlaka da prebere pdf...

header('Content-Type: ' . mime_content_type($path));
header('Content-Length: ' . filesize($path));

readfile($path);
}
else {
	echo 'Nimate pravic!';
} 
?>




A mogoče kdo ve kako iz zunanjega php kličem pravilno sejo, oz $user->id ?

Hvala za pomoč

wini ::

Evo sem rešil sam zadevo ... pa prilepim rešitev če bo kdaj kdo potreboval.
Ker laravel dela drugače s sejami, ne moreš direktno klicat session_start ampak takole:
namesto Sentinel::getUser(); uporabi Auth::check(); če ne uporabljaš default auth class za avtentikacijo.

<?php
require '../bootstrap/autoload.php';
$app = require_once '../bootstrap/app.php';
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle(
	$request = Illuminate\Http\Request::capture()
);
//$user = Sentinel::getUser();
if (Sentinel::guest())
{
    echo 'Za ogled datoteke se morate prijaviti!';
}
else {
	$getuserid=Sentinel::getUser()->id;

	//var_dump($getuserid);

	$path = realpath(dirname(__FILE__) . '/../storage/uploads/'.$getuserid.'/'.$_GET['file'] );
	//echo $path;
	if (!is_file($path)) {
	    // file ne obstaja
	    echo "Nimate pravic za ogled datoteke oz datoteka ne obstaja!";
	    exit();
	}
	else {
		header('Content-Type: ' . mime_content_type($path));
		header('Content-Length: ' . filesize($path));
		readfile($path);
	}
}
?>


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Ubuntu 18.04 nastavitev Remote desktopa

Oddelek: Pomoč in nasveti
111160 (887) gtu
»

Php varen login

Oddelek: Programiranje
203953 (3453) Volk|
»

Excel - relative link

Oddelek: Programska oprema
51191 (1143) Cold1
»

PHP login skript

Oddelek: Izdelava spletišč
282833 (1419) Lion29
»

Kako omejiti dostop do URL-ja datoteke z geslom

Oddelek: Izdelava spletišč
61276 (1168) McAjvar

Več podobnih tem