Das Beispiel in diesem Artikel beschreibt, wie man ein Backend-Anmeldesystem in Laravel erstellt. Ich teile es Ihnen als Referenz mit:
Heute möchte ich ein Backend-System erstellen. Es gibt Benutzer, die sich beim System anmelden Beim Ausprobieren habe ich das Gefühl, dass sich Laravel-Benutzer anmelden können. Es ist wirklich glücklich. Voraussetzung ist natürlich, dass das von Ihnen gewünschte Benutzerverwaltungssystem das einfachste ist, d. h. Sie müssen sich nur ohne Benutzerberechtigung anmelden können.
Ich werde hier nicht die Standardbenutzertabelle als Beispiel verwenden, da diese leicht mit einigen Standardeinstellungen von Laravel verwechselt werden könnte.
Bestätigen Sie zunächst, dass die Benutzertabelle im Hintergrund badin heißt. Jeder Administrator hat einen Benutzernamen, einen Spitznamen, eine E-Mail-Adresse und ein Passwort.
Verwenden Sie zum Spaß die Migration von Laravel, um das zu erstellen Tabelle (eigentlich müssen Sie dieses Tool nicht verwenden, um die Tabelle zu erstellen)
1 Installieren Sie das grundlegendste Laravel-Framework
2 Erstellen Sie eine Migrationsdatei:
./artisan migrate:make create-badmin-table
3 Eine zusätzliche PHP-Datei unter app/database/migration/ gefunden:
2014_10_19_090336_create-badmin -table.php
4 Inhalt hinzufügen nach oben und unten;
<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateBadminTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('badmin', function($table) { $table->increments('id'); $table->string('nickname', 100)->unique(); $table->string('username', 100)->unique(); $table->string('email', 100)->unique(); $table->string('password', 64); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('badmin'); } }
5 Konfigurieren Sie die lokale Datenbank, app/config /local/database.php
<?php return array( 'fetch' => PDO::FETCH_CLASS, 'default' => 'mysql', 'connections' => array( 'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'test', 'username' => 'yejianfeng', 'password' => '123456', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ), ), 'migrations' => 'migrations', );
6 Datentabelle erstellen:
./artisan migrate --env=local
Zu diesem Zeitpunkt ging ich zur Datenbank und fand das Es gab eine zusätzliche Badadmin-Tabelle. Die Datenstruktur ist wie folgt:
CREATE TABLE `badmin` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `nickname` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `username` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `password` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), UNIQUE KEY `badmin_nickname_unique` (`nickname`), UNIQUE KEY `badmin_username_unique` (`username`), UNIQUE KEY `badmin_email_unique` (`email`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
create_at und update_at, dies sind Felder, die von Laravel standardmäßig für jede Tabelle erstellt werden, und diese beiden Felder können bei Verwendung von Eloquent automatisch aktualisiert werden um Hinzufügungen, Löschungen, Änderungen und Abfragen durchzuführen
7 Erstellen Sie ein Modell:
<?php use Illuminate\Auth\UserTrait; use Illuminate\Auth\UserInterface; use Illuminate\Auth\Reminders\RemindableTrait; use Illuminate\Auth\Reminders\RemindableInterface; class Badmin extends Eloquent implements UserInterface, RemindableInterface { use UserTrait, RemindableTrait; protected $table = 'badmin'; protected $hidden = array('password'); public static $rules = [ 'nickname' => 'required|alpha_num|min:2', 'username' => 'required', 'email'=>'required|email|unique:badmin', 'password'=>'required|alpha_num|between:6,12|confirmed', ]; }
Hier müssen Sie UserInterface und RemindableInterface implementieren
8 Verknüpfen Sie das Modell mit Auth und ändern Sie app/config/auth.php
<?php return array( // 默认的用户验证驱动 // 可以是database或者eloquent 'driver' => 'eloquent', // 只有驱动为eloquent的时候才有用 'model' => 'Badmin', );
Der Treiber kann hier eloquent oder datenbankbasiert sein eloquent teilt der Auth-Komponente mit, dass die Benutzerauthentifizierungsklasse von der Badmin-Klasse verwaltet wird. Das Modell hier hat einen Namespace, das heißt, wenn Ihre Admin-Klasse YejianfengBadmin ist, sollte sie in „YejianfengBadmin“ geändert werden
9 Okay, zu diesem Zeitpunkt wurde der Logikteil tatsächlich erstellt, und Sie kann bereits
Auth::attempt(XXX) im Controller verwenden, um eine Berechtigungsauthentifizierung durchzuführen
Auth::user(), um den angemeldeten Benutzer (eine Badmin-Klasse) zu erhalten
und so weiter. 10 Als nächstes erstellen Sie eine Benutzeranmeldeseite:<?php // 不需要登录验证的接口 Route::get('/', ['as' => 'user.login','uses'=>'UserController@getLogin']); Route::get('user/login', ['as' => 'login', 'uses' => 'UserController@getLogin']); Route::post('user/login', ['as' => 'login', 'uses' => 'UserController@postLogin']); // 需要登录验证才能操作的接口 Route::group(array('before' => 'auth'), function() { Route::get('user/logout', ['as' => 'logout', 'uses' => 'UserController@getLogout']); Route::get('user/dashboard', ['as' => 'dashboard', 'uses' => 'UserController@getDashboard']); });
12 Controller einstellen:
<?php class UserController extends BaseController { // 登录页面 public function getLogin() { return View::make('user.login'); } // 登录操作 public function postLogin() { if (Auth::attempt(array('email'=>Input::get('email'), 'password'=>Input::get('password')))) { return Redirect::to('user/dashboard') ->with('message', '成功登录'); } else { return Redirect::to('user/login') ->with('message', '用户名密码不正确') ->withInput(); } } // 登出 public function getLogout() { Auth::logout(); return Redirect::to('user/login'); } public function getDashboard() { return View::make('user.dashboard'); } // 添加新用户操作 public function getCreate() { return View::make('user.create'); } // 添加新用户操作 public function postCreate() { $validator = Validator::make(Input::all(), User::$rules); if ($validator->passes()){ $bAdmin = new Badmin(); $bAdmin->nickname = Input::get('nickname'); $bAdmin->username = Input::get('username'); $bAdmin->email = Input::get('email'); $user->password = Hash::make(Input::get('password')); $user->save(); Response::json(null); } else { Response::json(['message' => '注册失败'], 410); } } }
13 Filter einstellen, app/filter.php
Route::filter('auth', function() { if (Auth::guest()) { if (Request::ajax()) { return Response::make('Unauthorized', 401); } else { return Redirect::guest('/'); } } });
Ändern Sie die Adresse nach einem Authentifizierungsfehler in / path
14 Ansichten/user/login.blade.php festlegen
Wie Sie sehen können, können Sie hier Verwenden Sie direkt Session::has und Session::get
und dann sind Sie im Grunde fertig...
Ich hoffe, dass dieser Artikel für jedermann beim PHP-Programmdesign basierend auf dem Laravel-Framework hilfreich sein wird.
Ausführlichere Informationen zu den Schritten zum Aufbau eines Backend-Anmeldesystems mit Laravel finden Sie auf der chinesischen PHP-Website!