Laravel 5 Basics (Zwölf) – Zertifizierung
Laravel verfügt bereits über ein Benutzerauthentifizierungssystem. Werfen wir einen Blick auf routes.php
. Falls gelöscht, fügen Sie hinzu:
<code>Route::controllers([ 'auth' => 'Auth\AuthController', 'password' => 'Auth\PasswordController' ]);</code>
Sie können php artisan route:list
verwenden, um es auszuprobieren. Besuchen Sie /auth/login
im Browser und Sie sehen die Anmeldeoberfläche. Am besten kommentieren Sie die Dinge zu Google in der Systemvoreinstellung aus app.blade.php
, sonst werden Sie verrückt.
Sie können sich registrieren, anmelden oder sogar das Passwort vergessen.
Die eigentliche Registrierung eines Benutzers ist nach der Übermittlung fehlgeschlagen, aber larave ist automatisch zu /home
gesprungen. Mit tinker
können Sie sehen, ob der Benutzer erstellt wurde.
verwendet tatsächlich AuthAuthController
innerhalb von trait
. Was ist ein Triat? Nun, PHP unterstützt nur die Einzelvererbung und Merkmale wurden in PHP5.4 hinzugefügt. Ein Merkmal ist eigentlich eine Kapselung einer Reihe von Methoden, und Sie können es in eine andere Klasse einbinden. Wie bei einer abstrakten Klasse können Sie sie nicht direkt instanziieren.
Es gibt einen Verweis auf ein Merkmal in AuthAuthController
:
<code>use AuthenticatesAndRegistersUsers;</code>
Lass uns ihn finden und sehen, wie er nach der Registrierung springt. Er verbirgt es ziemlich tief, in vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesAndregistersUsers.php
, wow.
<code> public function redirectPath() { if (property_exists($this, 'redirectPath')) { return $this->redirectPath; } //如果用户设置了 redirectTo 属性,则跳转到用户设置的属性,否则到home return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home'; } </code>
OK, wir haben es verstanden. Legen Sie einfach das Attribut redirectTo
fest, um den Sprung nach der Registrierung anzupassen. Wir haben in AuthAuthContotroller
geändert:
<code> protected $redirectTo = 'articles';</code>
Lassen Sie uns zuerst /auth/logout
verwenden, um sicherzustellen, dass wir den Vorgang beenden. Haben Sie keine Angst, wenn etwas schief geht, wir haben keine Standard-Startseite. Besuchen Sie uns noch einmal: auth/register
Erstellen Sie einen neuen Benutzer, dieses Mal sollte es in Ordnung sein .
Melden Sie sich erneut ab und melden Sie sich dann mit der Anmeldung an.
Jetzt können wir die vorübergehend eingestellten ausgeblendeten Felder in form_partial
löschen und den Controller ändern:
<code> public function store(Requests\ArticleRequest $request) { //你可以这样 //$request = $request->all(); //$request['user_id'] = Auth::id(); //更简单的方法 $article = Article::create($request->all()); //laravel 自动完成外键关联 Auth::user()->articles()->save($article); return redirect('articles'); }</code>
Fügen Sie einen Artikel hinzu und verwenden Sie tinker
, um ihn anzusehen.
Middleware
Natürlich möchten wir nicht, dass jemand Artikel veröffentlichen kann, zumindest nicht, wenn er sich einloggt. Wir fügen Schutz im Controller hinzu:
<code> public function create() { if (Auth::guest()) { return redirect('articles'); } return view('articles.create'); }</code>
Der obige Code kann funktionieren, aber es gibt ein Problem, das wir in jeder Methode durchführen müssen, die geschützt werden muss. Das ist zu dumm.
Middleware kann als Verarbeitungspipeline verstanden werden. Die Middleware verarbeitet zu einem bestimmten Zeitpunkt in der Pipeline. Dieser Moment kann eine Anfrage oder eine Antwort sein. Abhängig von den Verarbeitungsregeln der Middleware kann die Anfrage umgeleitet oder weitergeleitet werden.
enthält drei Middlewares in app/http/middleware
. Sie können anhand ihrer Namen erkennen, dass Closure $next
die nächste Middleware darstellt.
Registrieren Sie die Middleware in app/http/kernel.php
. Der Abschnitt $middleware
deklariert Middleware, die das gesamte HTTP verarbeitet, $routeMiddleware
verarbeitet nur Routing, und Sie müssen die Verwendung einer oder mehrerer dieser Middlewares explizit deklarieren.
Angenommen, wir möchten das gesamte ArticlesController
schützen, fügen wir Middleware direkt im Konstruktor hinzu:
<code> public function __construct() { $this->middleware('auth'); }</code>
Jede Methode ist jetzt geschützt.
Aber wir möchten wahrscheinlich nicht, dass der gesamte Controller geschützt ist. Was ist, wenn es nur eine oder zwei seiner Methoden sind? Wir können so damit umgehen:
<code> public function __construct() { $this->middleware('auth', ['only' => 'create']); //当然可以反过来 //$this->middleware('auth', ['except' => 'index']); }</code>
Wir müssen keine Middleware im Konstruktor des Controllers einführen, wir können sie direkt in der Route deklarieren:
<code>Route::get('about', ['middleware' => 'auth', 'uses' => 'PagesController@about']);</code>
Die in kernel.php
bereitgestellte System-Middleware, wie z. B. 'IlluminateFoundationHttpMiddlewareCheckForMaintenanceMode'
, ermöglicht es uns, in den Wartungsmodus zu wechseln. Das System ist beispielsweise online, muss jetzt aber für die Verarbeitung vorübergehend heruntergefahren werden. Wir können es auf der Befehlszeile verarbeiten. Sehen Sie sich diese Middleware in Aktion an:
<code>php artisan down</code>
Besuchen Sie die Website und Sie können sehen, dass jede URL-Anfrage sofort zurückgegeben wird. Website online:
<code>php artisan up</code>
Lassen Sie uns unsere eigene Middleware erstellen:
<code> php artisan make:middleware Demo</code>
Dann fügen Sie den Code hinzu:
<code> public function handle($request, Closure $next) { //如果请求中含有 foo,我们就回到控制器首页 if ($request->has('foo')) { return redirect('articles'); } return $next($request); }</code>
Wenn Sie Middleware für alle Anfragen verwenden möchten, müssen Sie diese in kernel.php
in $middleware
registrieren:
<code> protected $middleware = [ ... 'App\Http\Middleware\Demo', ];</code>
Jetzt können wir das testen. Nehmen wir an, wir besuchen /articles/create?foo=bar
und werden zur Startseite weitergeleitet.
Lassen Sie uns diese Anzeige-Middleware loswerden und eine Middleware erstellen, die tatsächlich nützlich ist. Angenommen, wir möchten eine Seite schützen. Diese Seite muss für Administratoren zugänglich sein.
<code>php artisan make:middleware RedirectIfNotAManager</code>
Fügen wir den Verarbeitungscode hinzu:
<code> public function handle($request, Closure $next) { if (!$request->user() || !$request->user()->isATeamManager()) { return redirect('articles'); } return $next($request); }</code>
Ändern wir unser Modell:
<code> public function isATeamManager() { return false; }</code>
Der Einfachheit halber geben wir false direkt zurück. Dieses Mal platzieren wir die Middleware in kernel.php
in $routeMiddleware
.
<code> protected $routeMiddleware = [ ... 'manager' => 'App\Http\Middleware\RedirectIfNotAManager', ];</code>
Lassen Sie uns eine Testroute erstellen, um es zu testen:
<code>Route::get('foo', ['middleware' => 'manager', function() { return 'This page may only be viewed by manager'; }]);</code>
Der Gastidentitätszugriff oder der Login-Identitätszugriff kehren zur Startseite zurück. Wenn Sie jedoch isATeamManager()
so ändern, dass true
zurückgegeben wird, kann der Login-Identitätszugriff die zurückgegebenen Informationen sehen.
Das Obige hat die Grundlagen der Laravel 5 (Twelve)-Zertifizierung vorgestellt, einschließlich einiger Aspekte davon. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Die Verwendung von return in der C-Sprache ist: 1. Für Funktionen, deren Rückgabewerttyp ungültig ist, können Sie die Rückgabeanweisung verwenden, um die Ausführung der Funktion vorzeitig zu beenden. 2. Für Funktionen, deren Rückgabewerttyp nicht ungültig ist, ist die Funktion von Die Return-Anweisung dient dazu, die Ausführung der Funktion zu beenden. 3. Beenden Sie die Ausführung der Funktion vorzeitig wenn die Funktion keinen Wert zurückgibt.

Die chinesische Bedeutung von request ist „request“. Es ist eine globale Variable in PHP und ein Array, das „$_POST“, „$_GET“ und „$_COOKIE“ enthält. Die Variable „$_REQUEST“ kann per POST oder GET übermittelte Daten und COOKIE-Informationen abrufen.

Quellcode: publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}# Ausgabe Die Ausgabe des obigen Codes kann einfach zu dem Schluss kommen: return wird ausgeführt, bevor wir uns schließlich ansehen, was auf der Bytecode-Ebene passiert. Im Folgenden wird ein Teil des Bytecodes der Methode case1 abgefangen und mit dem Quellcode verglichen, um die Bedeutung jeder Anweisung darin zu kommentieren

So verwenden Sie die Funktion urllib.request.urlopen() in Python3.x, um eine GET-Anfrage zu senden. Bei der Netzwerkprogrammierung müssen wir häufig Daten von einem Remote-Server erhalten, indem wir eine HTTP-Anfrage senden. In Python können wir die Funktion urllib.request.urlopen() im Modul urllib verwenden, um eine HTTP-Anfrage zu senden und die vom Server zurückgegebene Antwort zu erhalten. In diesem Artikel wird die Verwendung vorgestellt

In der modernen Softwareentwicklung ist die Identitätsauthentifizierung eine sehr wichtige Sicherheitsmaßnahme. Auth0 ist ein Unternehmen, das Identitätsauthentifizierungsdienste anbietet. Es kann Entwicklern dabei helfen, schnell mehrere Identitätsauthentifizierungsmethoden (einschließlich OAuth2, OpenIDConnect usw.) zu implementieren und sichere und zuverlässige Authentifizierungsdienste bereitzustellen. In diesem Artikel stellen wir vor, wie man Auth0 zur Authentifizierung in der JavaAPI-Entwicklung verwendet. Schritt 1: Erstellen Sie ein Auth0-Konto und registrieren Sie die Anwendung. Zuerst müssen wir dies tun

1. Erstellen Sie eine neue Datei namens request.js und importieren Sie Axios: importaxiosfrom'axios'; 2. Erstellen Sie eine Funktion namens request und exportieren Sie sie: Dadurch wird eine Funktion namens request erstellt und exportiert. Richten Sie eine neue Axios-Instanz mit einer Basis-URL ein . Um Timeout-Einstellungen in einer umschlossenen Axios-Instanz hinzuzufügen, können Sie beim Erstellen der Axios-Instanz die Timeout-Option übergeben. exportconstrequest=axios.create({baseURL:'https://example.

Request in PHP ist eine super globale Variable in PHP. Sie wird zum Sammeln von Daten verwendet, die von HTML-Formularen und Parametern in URLs übermittelt werden. Sie kann Daten aus GET- und POST-Anfragen abrufen ein assoziatives Array, wobei die Schlüssel die Namen der Formularfelder und die Werte die Werte der Formularfelder sind. Bei Verwendung der Variablen $_request sollten vom Benutzer eingegebene Daten immer validiert und gefiltert werden, um Sicherheitsprobleme zu vermeiden.

Das Request-Objekt in PHP ist ein Objekt, das zur Verarbeitung von HTTP-Anfragen verwendet wird, die vom Client an den Server gesendet werden. Über das Request-Objekt können wir die Anforderungsinformationen des Clients abrufen, z. B. die Anforderungsmethode, die Anforderungsheaderinformationen, die Anforderungsparameter usw., um die Anforderung zu verarbeiten und zu beantworten. In PHP können Sie globale Variablen wie $_REQUEST, $_GET, $_POST usw. verwenden, um angeforderte Informationen zu erhalten, aber diese Variablen sind keine Objekte, sondern Arrays. Um Anfrageinformationen flexibler und bequemer bearbeiten zu können, können Sie dies tun
