quando accedo con credenziali errate ho ottenuto la risposta giusta. quando accedo con le credenziali corrette la pagina di login si ricarica con 302 richieste ma non reindirizza mai alla pagina delle statistiche. quando metto a punto che ho scoperto che il codice va a questo authinticate.php nella cartella middleware, si reindirizzare allo stato ospite loginIl reindirizzamento dell'autenticazione non riesce
if (Auth::guard($guard)->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('login');
}
}
vedere il codice: -
percorso. php
Route::get('login', '[email protected]');
Route::post('signin', '[email protected]');
Route::get('signout', '[email protected]');
Route::group(['prefix' => 'api'], function() {
Route::resource('authenticate', 'AuthenticateController', ['only' => ['index']]);
Route::post('authenticate', '[email protected]');
});
Route::group(['middleware' => ['web']], function() {
Route::auth();
Route::get('/', '[email protected]');
Route::get('/statistics', '[email protected]');
});
Accesso controller
public function index() {
return view('login');
}
public function signin(Request $request) {
$errors = [];
$email=$request['email'];
$password= $request['password'];
$credentials = array('email' => $email, 'password' => $password);
if(Auth::attempt($credentials))
{
return redirect('/statistics');
}
return "bad request";
}
public function signout()
{
Auth::logout();
return redirect('/login'); }
}
Statistiche controller
class StatisticsController extends Controller {
public function __construct()
{
$this->middleware('auth');
}
public function index() {
return view('statistics')->with($data);
}
public function statistics() {
return view('statistics');
}
}
Kernal.php nota che non c'è biblioteca JWT auth Io lo uso per l'autenticazione riposante con solo l'applicazione mobile.
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
];
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,
],
'api' => [
'throttle:60,1',
],
];
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'jwt.auth' => 'Tymon\JWTAuth\Middleware\GetUserFromToken',
'jwt.refresh' => 'Tymon\JWTAuth\Middleware\RefreshToken'
];
middleware/authenticate.php
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class Authenticate
{
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('login');
}
}
return $next($request);
}
}
I tutto il resto è un app di Laravel 5.2?L'app/Http/Middleware/Authenticate.php non è stata toccata? E i controller in 'app/Http/Controllers/Auth'? Puoi anche ripulire il tuo inglese nella tua domanda? Aggiunga almeno un po 'di punteggiatura - è difficile seguire dove finisce uno scenario e inizia il prossimo. – tremby
la domanda non è chiara! –
puoi mostrarmi il file \ App \ Http \ Middleware \ Authenticate ?? –