Meine Laravel + GatsbyJS-App verwendet auth:sanctum für die Anmeldeverwaltung. Andere Benutzer erhalten Server 500-Fehler, aber meine Anmeldung funktioniert einwandfrei
<p>Ich habe also eine App (mit Laravel für das Backend und GatsbyJS für das Frontend), bei deren Entwicklung ich mithelfe.
Vor einem Monat konnten sich alle Benutzer problemlos anmelden. Aber ich habe festgestellt, dass sich jetzt nicht alle Benutzer (außer mir) in der Produktionsumgebung anmelden können. </p>
<p>login.jsx-Datei</p>
<pre class="brush:php;toolbar:false;">const formChanged = async (e) =>
setError(false);
e.preventDefault();
setSubmitting(true);
let loginData = getValues();
let Response = Warten auf Login(loginData.email, loginData.password);
setSubmitting(false);
if (response.error) {
setError(true);
setValue('password', '');
} anders {
navigieren('/app/idm/');
}
};</pre>
<p>let Response =await login() ruft eine Methode namens login auf, die sich in der Datei api.js befindet</p>
<p>api.js-Datei</p>
<pre class="brush:php;toolbar:false;">// Melden Sie sich bei der Anwendung an
export const login = async (E-Mail, Passwort) =>
// Anfrage senden
let Response = waiting makeRequest('post', '/login', { email, password });
// Wenn keine Fehler vorliegen, legen Sie das Token und den Benutzer fest
if (!response.error && isBrowser()) {
localStorage.setItem('idm_token', Response.data.access_token);
let my_user = JSON.stringify(await me(response.data.access_token));
localStorage.setItem('idm_user', my_user);
}
Rückantwort;
};</pre>
<p>Wenn wir die E-Mail-Adresse und das Passwort weitergeben, werden diese Daten überprüft und an diesem Punkt können alle Benutzer problemlos Token generieren. </p>
<p> (Nur als Referenz, der Code zum Generieren des Sanctum-Tokens)
api.php-Datei</p>
<pre class="brush:php;toolbar:false;">Route::post('/login', function(Request $request) {
$login = $request->only('email', 'password');
if (Auth::attempt($login)) {
$user = User::where('email', $request['email'])->firstOrFail();
$token = $user->createToken('auth_token')->plainTextToken;
return Response()->json([
'access_token' =>
'token_type' => 'Bearer'
]);
}
return Response()->json(["message" => "Authentifizierung fehlgeschlagen"], 401);
})->name('api.login');</pre>
<p>Das Problem scheint beim Zugriff auf Routen zu bestehen, die derzeit durch auth:sanctum geschützt sind. Auch hier können alle Benutzer Token generieren, aber nur meine Anmeldedaten ermöglichen mir den Zugriff auf die Route.
Alle anderen Benutzer erhalten einen Server-500-Fehler.</p>
<p>Dies geschieht in der Datei api.js, wenn wir versuchen, my_user-Details abzurufen: </p>
<pre class="brush:php;toolbar:false;">let my_user = JSON.stringify(await me(response.data.access_token));</pre>
<p>Ein weiteres Problem, das ich habe, ist, dass meine Laravel-Anwendung in der Produktion vor ein paar Monaten aufgehört hat, Fehler auszugeben, und ich nicht herausfinden kann, wie ich das Fehlerprotokollierungsproblem in der Produktion beheben kann (in der Entwicklung ist die Fehlerprotokollierung in Ordnung). </p>
<p>Entschuldigung für den Mangel an Details, ich bin in all dem noch sehr neu und wenn es irgendwelche Tipps oder Dinge zum Ausprobieren gibt, wäre ich wirklich dankbar, auch wenn ich nicht die Antwort bekomme, die ich mehr als habe bereit, daran zu arbeiten, diese Frage zu lernen und zu lösen. </p>