Mon application Laravel + GatsbyJS utilise auth:sanctum pour la gestion des connexions, d'autres utilisateurs reçoivent des erreurs du serveur 500, mais ma connexion fonctionne correctement
<p>J'ai donc une application (utilisant Laravel pour le backend et GatsbyJS pour le frontend) que j'aide à développer.
Il y a un mois, tous les utilisateurs pouvaient se connecter sans problème. Mais j'ai découvert que désormais, tous les utilisateurs ne peuvent pas se connecter à l'environnement de production (sauf moi). </p>
<p>fichier login.jsx</p>
<pre class="brush:php;toolbar:false;">const formChanged = async (e) =>
setError(faux);
e.preventDefault();
setSubmitting(true);
laissez loginData = getValues();
let réponse = attendre la connexion (loginData.email, loginData.password);
setSubmitting(faux);
si (réponse.erreur) {
setErreur(vrai);
setValue('mot de passe', '');
} autre {
naviguer('/app/idm/');
}
};</pré>
<p>let réponse = wait login() appelle une méthode nommée login, qui se trouve dans le fichier api.js</p>
<p>fichier api.js</p>
<pre class="brush:php;toolbar:false;">// Connectez-vous à l'application
export const login = async (email, mot de passe) =>
// envoyer une demande
let réponse = wait makeRequest('post', '/login', { email, mot de passe });
// S'il n'y a pas d'erreur, définissez le jeton et l'utilisateur
if (!response.error && isBrowser()) {
localStorage.setItem('idm_token', réponse.data.access_token);
let my_user = JSON.stringify(attendez-moi(response.data.access_token));
localStorage.setItem('idm_user', mon_user);
}
réponse de retour ;
};</pré>
<p>Lorsque nous transmettons l'e-mail et le mot de passe, ces données sont vérifiées et à ce stade, tous les utilisateurs peuvent générer des jetons sans problème. </p>
<p> (Pour référence uniquement, le code pour générer le jeton du sanctuaire)
fichier api.php</p>
<pre class="brush:php;toolbar:false;">Route::post('/login', function(Request $request) {
$login = $request->only('email', 'mot de passe');
if (Auth::attempt($login)) {
$user = Utilisateur::where('email', $request['email'])->firstOrFail();
$token = $user->createToken('auth_token')->plainTextToken;
retourner la réponse()->json([
'access_token' => $jeton,
'token_type' => 'Porteur'
]);
}
return réponse()->json(["message" => "Échec de l'authentification"], 401);
})->name('api.login');</pre>
<p>Le problème semble être lié à l'accès aux routes actuellement protégées par auth:sanctum. Encore une fois, tous les utilisateurs sont capables de générer des jetons, mais seules mes informations de connexion me permettent d'accéder à l'itinéraire.
Tous les autres utilisateurs recevront une erreur de serveur 500.</p>
<p>Cela se produit dans le fichier api.js lorsque nous essayons d'obtenir les détails de mon_utilisateur : </p>
<pre class="brush:php;toolbar:false;">let my_user = JSON.stringify(attendez-moi(response.data.access_token));</pre>
<p>Un autre problème que je rencontre est que mon application Laravel en production a cessé de générer des erreurs il y a quelques mois et je n'arrive pas à comprendre comment résoudre le problème de journalisation des erreurs en production (en développement, la journalisation des erreurs est OK). </p>
<p>Désolé pour le manque de détails, je suis très nouveau dans tout cela et s'il y a des conseils ou des choses à essayer, je l'apprécierais vraiment, même si je n'obtiens pas de réponse, je suis plus que prêt à travailler sur l’apprentissage et la résolution de cette question. </p>