Ich habe Laravel 5.0. und setzen Sie die Treiber für die Sitzung auf die Datenbank. Ich habe eine Verbindung, die nicht erfordert, neue Reihe in Sitzungstabelle einzufügen. Wie kann ich das Einfügen neuer Zeile nur für www.site.com/download
deaktivieren.deaktivieren hinzufügen neue Zeile in Sitzungen Tabelle in Laravel
Antwort
diese Lösung ist gut für Laravel 5,0 ersten beiden Middleware in app/http/kernel.php
.First Middleware definieren müssen lesssession ist. lesssession für Strecke ist, die nicht brauchen Sitzung .und zweite ist hasssession Middleware .hassession ist gut für die Route, die Sitzung benötigen:
<?php namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel {
/**
* The application's global HTTP middleware stack.
*
* @var array
*/
/**
* The application's route middleware.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => 'App\Http\Middleware\Authenticate',
'hassession' => [
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
'Illuminate\Cookie\Middleware\EncryptCookies',
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
'App\Http\Middleware\VerifyCsrfToken',
],
'lesssession' => [] ,
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
];
}
Schritt 2: Put-Route in zwei Gruppe bearbeiten app/http/route.php
:
<?php
Route::group(['middleware' => ['lesssession']], function()
{
Route::get('download', function(){
// do some stuff for download file
});
});
Route::group(['middleware' => ['hassession']], function()
{
// all other route that need session
});
?>
Erstellen Sie einen neuen Route/Middleware-Typ für den sitzungslosen Zugriff. Fügen Sie dazu eine neue Middlewaregruppe in Ihrem HTTP/Kernel hinzu, die die StartSession
Middleware nicht enthält, fügen Sie dann eine neue Routendatei hinzu, um alle Ihre Downloadlinks zu speichern, und registrieren Sie dann Ihre neue Routendatei in Ihrer RouteServiceProvider
.
Bearbeiten Sie die $middlewareGroups
Array in app/Http/Kernel.php
wie folgt aussehen:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
'sessionless' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
bearbeiten Sie dann Ihre app/Providers/RouteServiceProvider
Ihre neu erstellte Route Datei zur Karte:
Route::group([
'middleware' => 'sessionless',
'namespace' => $this->namespace,
'prefix' => 'download',
], function ($router) {
require base_path('routes/downloads.php');
});
Jetzt eine Datei in Ihrem /routes
hinzufügen Verzeichnis mit dem Namen downloads.php
, und fügen Sie dort Ihre herunterladbaren Routen hinzu. Wenn Sie einen Platzhalter verwenden, um zu analysieren, welche Datei für sie suchen, können Sie, oder Sie können explizit auflisten, was Routen einen Download auslösen:
Route::get('test', function(){
$file = '/path/to/test/file';
return response()->download($file);
});
Route::get('{fileName}', function($fileName){
$file = '/path/to/' . $fileName;
return response()->download($file);
});
Dies bezieht sich nicht kopflos Genehmigung verwendet wird, die Sie würde benötigen, wenn Sie keinen unbefugten Zugang zu allen Ihren sessionless
Wegen wünschen.
- 1. Neue Zeile in vorhandene Tabelle hinzufügen
- 2. Schienen neue Zeile in Tabelle hinzufügen
- 3. Tabelle Zeile in angularjs deaktivieren
- 4. Zugriff neue Zeile zu Tabelle hinzufügen
- 5. eine neue Zeile in Tabelle
- 6. Ember-Tabelle hinzufügen dynamisch eine neue Zeile
- 7. Sitzung in Laravel deaktivieren
- 8. JQuery Datentabellen hinzufügen neue Zeile Taste in Tabelle als Zeilen
- 9. AngularJS Zeile in Tabelle hinzufügen
- 10. JQuery Datatables Neue Zeile hinzufügen
- 11. sap.ui.table Tabelle Zeile Auswahl deaktivieren in Sapui5
- 12. Laravel - neue Daten in Folge hinzufügen
- 13. Wie neue Zeile in jqGrid hinzufügen
- 14. Form in Wordpress Hinzufügen Zeile in Tabelle
- 15. Laravel finden Zeile in der Tabelle fehlt
- 16. Jquery - Neue Zeile zur Tabelle hinzufügen (IE-freundliche Version)
- 17. AJAX: neue Zeile zur Tabelle hinzufügen oder entfernen mit AJAX
- 18. Wpf DataGrid neue Zeile hinzufügen
- 19. UITextView unbeabsichtigt neue Zeile hinzufügen?
- 20. Mehrere Auth-Sitzungen in Laravel 4
- 21. Neue Tabelle in Magento hinzufügen Neue Bestellung erstellen Abschnitt
- 22. Schaltfläche Hinzufügen automatisch Tabelle Zeile
- 23. Deaktivieren von Sticky-Sitzungen in Openshift3
- 24. Neue Tabelle zu Azure hinzufügen
- 25. Neue Zeile ohne Symbolleiste hinzufügen. Kendo Gitter
- 26. PHP: Sitzungen in Sitzungen?
- 27. Deaktivieren Sie eine Zeile in Feature-Tabelle in ARCgis Javascript
- 28. Hinzufügen neuer Zeile in der Tabelle in Code hinter Problem
- 29. neue Tabellenzeile in Tabelle
- 30. Jedes Formularelement als neue Zeile in mySql-Tabelle
Stimmen Sie zu, Ihre Antwort ist flexibler und korrekter, Ihre Art, wie Sie mehrere routenlose Sitzungen verwenden können, Danke. – Froxz
Dies ist für Laravel 5.0 oder Laravel 5.3? – adib16
Die Struktur würde für beide funktionieren, aber Sie würden wahrscheinlich die Download-Routen-Datei in 'app/Http/routes' anstelle von' routes/' –