laravel-log-viewer
laravel-log-viewer copied to clipboard
Basic Auth For Production
To view logs in production there must be a option to protect log route
You can protect the route with, for example, Laravel's default auth middleware. This is outside the scope of this package.
@RogierVC Yes, absolutely right we can protect our route with Laravel's default auth middleware.
but i am using default auth for my website users
i want to give log route access only authorized admin of website.
can we built like this
config/logviewer.php
'username' => env('LOGVIEWER_USERNAME', 'username'),
'password' => env('LOGVIEWER_PASSWORD', 'password')
middleware/LogViewerBasicAuthMiddleware.php
<?php
namespace Rap2hpoutre\LaravelLogViewer;
use Closure;
use Config;
class LogViewerBasicAuthMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$username = Config::get('logviewer.username');
$password = Config::get('logviewer.password');
$givenUsername = $request->getUser();
$givenPassword = $request->getPassword();
if ($givenUsername !== $username || $givenPassword !== $password) {
return response('Unauthorized.', 401, ['WWW-Authenticate' => 'Basic']);
}
return $next($request);
}
}
/Rap2hpoutre/LaravelLogViewer/LaravelLogViewerServiceProvider.php
$router = $this->app->make(Router::class);
$router->aliasMiddleware('auth.logviewer', LogViewerBasicAuthMiddleware::class);
Then can use
Route::middleware('auth.logviewer')->get('logs', [\Rap2hpoutre\LaravelLogViewer\LogViewerController::class, 'index']);