Heim  >  Artikel  >  PHP-Framework  >  So deaktivieren Sie die Benutzeranmeldung in Laravel

So deaktivieren Sie die Benutzeranmeldung in Laravel

WBOY
WBOYOriginal
2023-05-29 09:41:37611Durchsuche

So deaktivieren Sie die Benutzeranmeldung in Laravel

In einigen Fällen müssen Sie möglicherweise die Benutzeranmeldungsfunktion in Ihrer Laravel-Anwendung deaktivieren, z. B. während der Wartung oder beim Testen während der Entwicklung. Das Deaktivieren der Benutzeranmeldung ist nicht schwierig. Befolgen Sie einfach die folgenden Schritte.

Schritt 1: Routing deaktivieren

Um die Benutzeranmeldung zu deaktivieren, sollten Sie zunächst das Routing im Zusammenhang mit der Benutzeranmeldung deaktivieren. Laravel erstellt standardmäßig die folgenden Routen für die Benutzerauthentifizierung:

  • GET /login Zeigt das Anmeldeformular an.
  • POST /login Verarbeitet die Übermittlung des Anmeldeformulars.
  • POST /logout Verarbeitet die Abmeldeanforderung.

In Ihrer Anwendung wird es wahrscheinlich so sein Es gibt auch einige andere authentifizierungsbezogene Routen. Wenn Sie sie alle deaktivieren möchten, kommentieren Sie sie in Ihrer Webrouting-Datei aus.

Beispielcode:

// 禁用用户登录路由
// Route::get('login', 'AuthLoginController@showLoginForm')->name('login');
// Route::post('login', 'AuthLoginController@login');
// Route::post('logout', 'AuthLoginController@logout')->name('logout');

Schritt 2: Authentifizierungs-Middleware deaktivieren

Laravel bietet eine Reihe von Middleware zur Handhabung authentifizierungsbezogener Funktionen. Unter anderem wird die Authenticate-Middleware verwendet, um zu überprüfen, ob der Benutzer angemeldet ist. Wenn Sie die Benutzeranmeldung deaktivieren möchten, entfernen Sie einfach diese Middleware aus Ihrer Anwendung.

Beispielcode:

// 关闭验证中间件
// Route::middleware(['auth'])->group(function () {
//     // ... your routes requiring authentication
// });

Wenn Sie die Authenticate-Middleware nicht entfernen möchten, können Sie sie auch auskommentieren. Auf diese Weise wird die Middleware nicht aktiviert, ihre Funktionalität kann jedoch jederzeit wiederhergestellt werden.

Schritt 3: Melden Sie alle derzeit angemeldeten Benutzer ab.

Wenn Sie Benutzer haben, die bei Ihrer Anwendung angemeldet sind, bevor Sie die Benutzeranmeldung schließen, sollten Sie diese Benutzer abmelden. Andernfalls greifen diese Benutzer weiterhin über ihre bestehenden Sitzungen auf die Anwendung zu und umgehen Einstellungen, die Benutzeranmeldungen deaktivieren.

Sie können Ihrem AuthenticatesUsers- oder LoginController-Controller Code hinzufügen, um sicherzustellen, dass die Unterbrechung angefordert wird, bevor alle Benutzer abgemeldet werden:

Beispielcode:

// 在 AuthenticatesUsers 控制器的 logout 方法中添加以下代码
public function logout(Request $request)
{
    $this->guard()->logout();

    $request->session()->invalidate();
    $request->session()->regenerateToken();

    // 中断请求
    return response()->noContent();
}

Auf diese Weise wird die Anforderung getrennt, wenn ein Benutzer versucht, sich abzumelden und verhindert, dass jemand mit einer schriftlichen Sitzung (z. B. einem CSRF-Token) gültige Vorgänge ausführt.

Schritt vier: Sitzungen und Cookies löschen

Abschließend sollten Sie nach Abschluss der oben genannten Schritte alle zugehörigen Sitzungen und Cookies löschen, um zu verhindern, dass bereits angemeldete Benutzer weiterhin auf Ihre Anwendung zugreifen.

In Ihrer Authenticate-Middleware oder einer anderen Middleware können Sie die SessionMiddleware und die StartSession-Middleware als übergebene Middleware registrieren, um sicherzustellen, dass alle Sitzungscookies gelöscht werden:

Beispielcode:

// 在您的 Authenticate 中间件或其他中间件中清除会话和 Cookie
public function handle($request, Closure $next, ...$guards)
{
    // 禁用所有会话并清除所有 Cookie
    $request->session()->flush();
    $request->session()->regenerate();
    $response = $next($request);
    $response->headers->remove('Set-Cookie');
    return $response;
}

Diese Codes werden in der Anfrage „Alle Sitzungsdaten löschen“ verwendet und löschen Sie alle Sitzungscookies, wenn Sie fertig sind. Auf diese Weise kann jemand, selbst wenn er versehentlich versucht, auf Ihre Anwendung zuzugreifen, seinen Anmeldestatus in keiner Sitzung wiederherstellen.

Zusammenfassung

Das Deaktivieren der Benutzeranmeldung ist möglicherweise keine gängige Praxis in der Laravel-Anwendungsentwicklung, funktioniert aber in einigen Fällen. Um die Benutzeranmeldung zu deaktivieren, deaktivieren Sie authentifizierungsbezogenes Routing, Middleware und Sitzungscookies in Ihrer Anwendung und melden Sie dann alle derzeit angemeldeten Benutzer ab. Auf diese Weise kann jemand, selbst wenn er versucht, über eine gültige Sitzung auf Ihre Anwendung zuzugreifen, seinen Anmeldestatus in keiner Sitzung wiederherstellen.

Das obige ist der detaillierte Inhalt vonSo deaktivieren Sie die Benutzeranmeldung in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn