Wie kann ich die Registrierung eines neuen Benutzers in Laravel 5 deaktivieren?
Ich versuche zu machen single-user-admin-panel (das hat nur ein Benutzer) in Laravel 5 und registrierte ich, dass user, also ich will jetzt deaktivieren Sie die Registrierung für neue Nutzer, ist natürlich das login-Formular muss arbeiten, aber keine neuen register von nun an. wie kann ich das tun?
Ich benutze die Standard-Benutzer-login und registrieren in der version 5.
Kommentar zu dem Problem - Öffnen
Entfernen Sie einfach die register-bezogene Methoden aus dem routes.php - Datei. nicht überschreiben Sie die Methoden mit leer—es ist eine schreckliche und hack-y-Ansatz als du hast, um re-add die Körper, wenn Sie sich entscheiden, zu re-aktivieren Sie dieses feature in der Zukunft.
@MartinBean es gibt keine Routen, die in
routes.php
. Zum aktivieren der Authentifizierungs-Funktionen, alle Sie tun ist, fügen Sie die Route::auth();
in der Datei. @miken32 Mein Kommentar war von über fünf Monaten, bevor Sie die
Route::auth()
Verknüpfung wurde befürwortet. InformationsquelleAutor der Frage Milad | 2015-03-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach überschreiben
showRegistrationForm()
undregister()
Methoden inAuthController
für Laravel 5.0 - 5.4Auth/RegisterController.php
für Laravel 5.5InformationsquelleAutor der Antwort Limon Monte
Wenn Sie mit Laravel 5.2 und der Installation des auth-Funktionalität mit
php artisan make:auth
dann Ihreapp/Http/routes.php
- Datei beinhaltet alle auth-bezogene Routen einfach durch AufrufRoute::auth()
.Auth () - Methode kann gefunden werden in
vendor/laravel/framework/src/Illuminate/Routing/Router.php
. Also, wenn Sie wollen, zu tun, wie einige Leute hier, und deaktivieren Sie die Registrierung durch entfernen unerwünschter Routen (wahrscheinlich eine gute Idee), dann müssen Sie kopieren die Routen, die Sie immer noch wollen, von auth () - Methode auf, und legen Sie Sie inapp/Http/routes.php
(ersetzen Sie den Aufruf von Strecke::auth()). So zum Beispiel:Wenn Sie eine niedrigere version als 5.2, dann ist es wohl anders, ich erinnere mich an Dinge, die sich ziemlich geändert, seit 5.0, irgendwann
artisan make:auth
wurde auch entfernt, wenn ich mich Recht erinnere.InformationsquelleAutor der Antwort Rafał G.
Methode 1 für version 5.3
In laravel 5.3 nicht AuthController.
zum deaktivieren der register route, die Sie ändern sollten im Konstruktor von
RegisterController
wie diese:Können Sie ändern, form:
:
Hinweis: für die Verwendung
Redirect
vergessen Sie nichtuser Redirect;
Damit Benutzer Zugriff auf https://host_name/register es einen redirect zu "/".
Methode 2 für die version 5.3
Wenn wir
php artisan make:auth
HinzugefügtAuth::route();
automatisch.
Bitte Überschreiben Sie die Route in /routes/web.php.
Sie können ändern, es ist wie dies:
* Sie müssen diese Zeile auskommentieren:
Auth::routes();
Dank! Ich hoffe, dass es Ihre Probleme lösen kann.
InformationsquelleAutor der Antwort Phanith Kung
Für Laravel 5.3 und 5.4, hier ist der richtige Weg, es zu tun:
Müssen Sie ändern:
zu
in app/Http/Controller/Auth/RegisterController.php
InformationsquelleAutor der Antwort Yassin
Überschreiben der getRegister und nacherfassen ist schwierig - wenn Sie der Verwendung von git gibt es eine hohe Möglichkeit, dass
.gitignore
auf ignorieren eingestellt ist framework-Dateien führen zu dem Ergebnis, dass eine Eintragung noch möglich sein, in Ihrer Produktions-Umgebung (wenn laravel installiert ist via composer zum Beispiel)Andere Möglichkeit ist die Verwendung routes.php und durch das hinzufügen dieser Zeile:
Diese Weise können die framework Dateien sind allein gelassen und jede Anfrage wird noch umgeleitet werden, Weg von den Frameworks register-Modul.
InformationsquelleAutor der Antwort JCoolinger
Den AuthController.php @limonte hat überschreiben, ist in der App\Http\Controller\Auth, nicht in der vendor-Verzeichnis, so dass Git nicht ignorieren, dies zu ändern.
Habe ich zusätzlich diese Funktionen:
und es funktioniert einwandfrei.
InformationsquelleAutor der Antwort Jesús Amieiro
Die folgende Methode funktioniert Super:
Kopieren alle Routen von /vendor/laravel/framework/src/Illuminate/Routing/Router.php und fügen Sie es in web.php und auskommentieren oder löschen Auth::Routen().
Dann setup eine bedingte aktivieren und deaktivieren Sie die Registrierung aus .env.
Duplizieren Sie die 503.blade.php Datei views/Fehler und erstellen ein 403 forbidden oder was auch immer Sie mögen.
Hinzufügen ALLOW_USER_REGISTRATION=.env und Steuern der Benutzer-Registrierung, indem Sie seinen Wert auf true oder false.
Nun haben Sie die volle Kontrolle über Routen-und Lieferanten-Dateien bleiben unangetastet.
web.php
Dies ist eine Kombination von einigen vorherigen Antworten vor allem Rafal G. und Daniel Centore.
InformationsquelleAutor der Antwort Pyol7
Heres meine Lösung 5.4:
Hinweis habe ich auskommentiert
Auth::routes()
und die beiden Eintragung Routen.Wichtig: Sie müssen auch sicherstellen, dass Sie entfernen Sie alle Instanzen von
route('register')
in Ihremapp.blade
layout, oder Laravel wird keinen Fehler werfen.InformationsquelleAutor der Antwort kjdion84
In
routes.php
, fügen Sie einfach die folgenden:Können Sie dann gezielt Steuern, ob die Eintragung zulässig ist oder nicht in Sie
.env
Datei.InformationsquelleAutor der Antwort Daniel Centore
Musste ich nutzen:
Mit Redirect:: () gab mir einen Fehler:
InformationsquelleAutor der Antwort ghodder
In laravel 5.3, sollten Sie den Standardwert überschreiben
showRegistrationForm()
indem Sie den folgenden code in dieRegisterController.php
Datei inapp\Http\Controllers\Auth
da Sie nicht wollen, zu erlauben, die Registrierung, ist es besser, nur werfen
404 error
so dass der Eindringling weiß er ist verloren. Und wenn Sie bereit sind, für registraation in Ihrer app verwenden, entfernen Sie//return view('auth.register');
dann Kommentarabort(404);
\\\\\\\\\\\\\\\\\\\\NUR EIN FYI///////////////////////////////
Wenn Sie müssen, verwenden Sie mehrere-Authentifizierung wie erstellen auth für die Benutzer, Mitglieder, Studenten, admin, usw. dann berate ich Sie Kasse diese hesto/multi-auth seine ein awesome-Paket für unbegrenzte auths in L5-apps.
Lesen Sie mehr abouth die Auth-Methodik und Ihre dazugehörige Datei in diese writeup.
InformationsquelleAutor der Antwort Adepoju-Conde Adesegun Chris.
In Laravel 5.4
Finden Sie alle Routen, die eingetragen sind durch
Auth::routes()
in der Klasse\Illuminate\Routing\Router
in der Methodeauth()
sieht es wie folgt aus:
Kopieren Sie einfach die Routen, die Sie möchten/brauchen, und Sie sind in Ordnung!
InformationsquelleAutor der Antwort bambamboole
In Laravel 5.5
War ich versucht zu erreichen, das gleiche problem in Laravel 5.5. Anstelle der Verwendung von
Auth::routes()
im web.php die Routen-Datei, ich habe nur die login/logout-Routen:InformationsquelleAutor der Antwort David Angel
In Laravel 5.5
Arbeiten an einem ähnlichen Problem und festlegen der middleware argument vom Gast zum 'auth' schien eine elegantere Lösung.
Datei Bearbeiten: app->http->Controller->Auth->RegisterController.php
Ich könnte falsch sein, aber...aber es scheint mehr glatt, als die Bearbeitung der routing-mit mehr Zeilen und weniger shity als einfach umleiten der Seite...zumindest in diesem Beispiel, zu wollen, sperren Sie die Anmeldung für die Gäste.
InformationsquelleAutor der Antwort Chad Quilter
Ich denke, das würde eher die bessere Lösung.
Überschreiben Sie die folgenden Methoden, wie unten erwähnt, in
App\Http\Controller\Auth\RegisterController.php
InformationsquelleAutor der Antwort Vaishnav Mhetre
In der Reihenfolge nicht zu ändern Sie den code wie es ist, erstellen Sie einfach eine middleware zu erkennen, ob die Anfrage-url url('register'), dann redirect zu 404 oder tun, wo auch immer.
InformationsquelleAutor der Antwort Integral Master
In Laravel 5.5 ist sehr einfach, wenn Sie CRUD-route-system.
Gehen
app/http/controllers/RegisterController
es ist namespace:Illuminate\Foundation\Auth\RegistersUser
Müssen Sie gehen, um die RegistersUser:
Illuminate\Foundation\Auth\RegistersUser
Gibt es noch die Methode aufrufen
showRegistrationForm
ändern:return view('auth.login');
:return redirect()->route('auth.login');
und entfernen Sie die Klinge Seite route-Aufruf registrieren. Es kann beispielsweise so Aussehen:InformationsquelleAutor der Antwort macalu
Ich fand, dass dies die einfachste Lösung in laravel 5.6! Es leitet jemand, der versucht, zu gehen yoursite.com/register zu yoursite.com
routes/web.php
InformationsquelleAutor der Antwort Ryan Dhungel
hinzufügen
oben in der Datei
InformationsquelleAutor der Antwort