J'ai fait un quiz lorsque l'utilisateur déverrouille le quiz, alors seul l'utilisateur peut accéder à la page du quiz, supposons 127.0.0.1:8000/quiz1. Mais j'ai déverrouillé le quiz, mon middleware m'amène aussi à la page d'accueil.
J'ai essayé cette logique mais cela n'a pas fonctionné.
<?php
namespace App\Http\Middleware;
use Closure;
use App\Theme_User;
use App\User;
use Auth;
class UnlockMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$user = auth()->user()->id;
$theme_user = Theme_User::find($user);
if($theme_user->unlocked == 1){
return $next($request);
}
else {
return redirect('/login');
}
}
}
Dans mon Theme_User, il y a user_id et déverrouillé stocké mais cela ne fonctionne pas pour moi.
Vous devez d'abord vérifier s'ils sont connectés, comme avec \Auth::check()
...
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(\Auth::check()) {
$user = \Auth::user()->id;
$theme_user = Theme_User::find($user);
if($theme_user->unlocked == 1){
return $next($request);
}
// Logged in but not unlocked
}
else {
return redirect('/login');
}
}
Je n'ai aucune idée de la logique derrière la connexion mais non déverrouillée, vous devrez combler cette lacune
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots