J'utilise la dernière version de Laravel (normalement) et j'ai essayé de mettre en œuvre l'authentification avec la vérification du courrier électronique. Cependant, le lien dans l'e-mail que je reçois après une inscription à l'utilisateur conduit à une page d'erreur 403. Le lien semble correct cependant.
Je travaille dans "localhost" avec homestead et vagabond. L'enregistrement d'un utilisateur fonctionne, je reçois l'utilisateur créé à la fin de ma fonction et la base de données est bien remplacée. P>
J'ai dû modifier la méthode de création de regisController car le courrier n'était pas envoyé. p>
Premièrement, en cliquant sur le lien, je n'avais qu'une page vierge. Après une certaine lecture, j'ai appris que l'utilisateur devait être authentifié avant d'être vérifié et que mon registreController après avoir enregistré l'utilisateur ne l'authentifie pas. J'ai ajouté du code pour authentifier l'utilisateur après sa création. Maintenant, lorsque vous cliquez sur le lien, je reçois une page d'erreur 403. P>
Remarque: ma table qui n'est pas la table par défaut contient le champ e-mail_verified_at. P>
voici ma méthode de création à l'intérieur du RegistreController: p> voici mon vérificationController: p> J'ai essayé définir Mes constantes de l'application dans le fichier .env: p> dans mon fichier de routage Web, mon premier itinéraire est : P> proxy $ "* ' ; code> en fix middleware TrustProxies. p> 'url' => env('APP_URL', 'http://sunshine.local'),
'asset_url' => env('ASSET_URL', null),
4 Réponses :
à partir de votre fichier Ainsi, incluez un web.php code>, lors de la création de demandes Web HTTP, votre URL racine d'application '/' code> ne peut être consulté que via la route nommée: itinéraire ('home') code> qui renvoie une vue personnalisée. redirectTo () code> méthode dans VerificationController.php Code> Comme ça P> namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
// other imports
class VerificationController extends Controller
{
use VerifiesEmails;
/**
* Where to redirect users after verification.
*
* @var string
*/
protected $redirectTo = '/';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('signed')->only('verify');
$this->middleware('throttle:6,1')->only('verify', 'resend');
}
protected function redirectTo()
{
return route('home');
}
}
Malheureusement, j'ai toujours une page d'erreur 403 après avoir cliqué sur le lien.
Ré-enregistré un nouvel utilisateur et vérifiez à nouveau le nouveau lien. De plus, vous n'avez inclus qu'une partie de votre vérificationcontroller code>. Inclure le tout
Modifier mon poste, et voici le lien que je reçois: sunshine.local / email / Vérifiez / ...
Essayez d'effacer vos caches d'itinéraire et de votre application et de rafraîchir la charge automatique en exécutant ces commandes de votre console dans l'ordre PHP Artisan Route: Cache Code>, PHP Artisan Cache: Effacer code> et Dump automatique du compositeur code>. Re-Inscrivez-vous et voyez si cela aide.
J'ai essayé mais ça ne marche toujours pas. Notez que je n'ai pas pu exécuter PHP Artisan itinéraire: cache code> parce que mes itinéraires utilisent des fermetures.
Désolé, utilisez ces PHP Artisan itinéraire: Effacer code> et ce Compositeur Dump-AutoLoad code>
Auth::routes(['verify' => true]);` I Noticed you have a backtick in your route. Just after the verify route semi colon. Try removing that and see what happens
Seule une erreur de colle-colle. Je ne l'ai pas dans mon fichier de routage.
@Tomgirou OK, avez-vous vérifié les fichiers journaux. 403 signifie une demande interdite. Cela signifie que vous n'êtes pas autorisé à voir cette ressource. Veuillez vérifier que l'utilisateur est connecté. Coller les erreurs enregistrées
C'était due à un problème sur le nom d'un champ dans la table des utilisateurs. P>
Voir mon autre message pour la réponse: Laravel 5.8: N'oubliez pas que le jeton n'est pas enregistré dans la base de données p>
avait ce même problème; Vérifiez votre .env que votre p>
est correct et correspond à la correspondance. P> app_url = http: // ... code> p>
Avez-vous le contrôleur
app / http / contrôleurs / auth / vérificationcontroller.php code>? Si oui, pouvez-vous l'inclure dans votre question?@Udoe. Oui, je l'ai, et je n'ai pas été modifié. Je monte mon message avec son code.
D'accord. Après avoir suivi le lien de vérification, votre utilisateur est-il vérifié? Je veux dire, lorsque vous vérifiez le champ
e-mail_verified_at code> dans la table utilisateur, est-ilnull code> ou est mis à jour (même avec l'erreur 403)? De plus, pouvez-vous fournir votre définition de route d'origine dansweb.php code>. Il semble que l'URL'/' code> est protégée en quelque sorte et doit être accessible via la méthode de route définie.@Udoe. Le champ reste nul. Je mettez à jour mon message avec ma définition de route d'origine.
@Tomgiru Voir ma réponse. J'espère que cela aide.
Je vois Protected
Protected $ Proxies = '*' code>. Êtes-vous derrière un serveur proxy?@Udoe. Non, ce n'est qu'une solution que j'ai essayée d'un autre poste. J'utilise simplement ce site Web dans une configuration locale avec Vagrant et Homestead.
Je connais c'est un vieux! Mais si quelqu'un passe ici comme moi, pensait que cela pourrait aider. Le principal problème semble être le cache! et compilé des itinéraires et des vues. Après avoir cherché des solutions partout sur ce que j'ai mal fait. Il suffit de courir les commandes suivantes:
php artisan config: cache code>,PHP Artisan config: Effacer code>,PHP Artisan cache: Effacer code> suivi dePHP Itinéraire Artisan: Clear Code> et enfinPHP Artisan View: Effacer code>. Redémarré mon serveur et mon tour! Cela a commencé à travailler.